หน้าแรก
หน้าแรก
สมมติว่าเรามีรายการที่เชื่อมโยงเพียงอย่างเดียว เราต้องตรวจสอบหาค่าของโหนดสุดท้ายที่ k (ดัชนี 0 ดัชนี) เราต้องแก้ปัญหานี้ในครั้งเดียว ดังนั้น ถ้าอินพุตเหมือนกับ node =[5,4,6,3,4,7], k =2 เอาต์พุตจะเป็น 3 เนื่องจากโหนดสุดท้าย (ดัชนี 3) มีค่า 3. เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - klast :
สมมติว่าเรามีรายการหมายเลขเฉพาะที่เรียกว่า nums และจำนวนเต็ม k เราต้องหาหมายเลขที่ k ขาดหายไปจากองค์ประกอบแรกของรายการที่กำหนด ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[5,6,8,10,11], k =1 ผลลัพธ์จะเป็น 9 เนื่องจาก 9 เป็นตัวเลขที่สอง (ดัชนี 1) ที่หายไป เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - สำห
สมมติว่าเรามีแผนผังการค้นหาแบบไบนารี และจำนวนเต็ม k อีกอัน เราต้องหาค่าที่น้อยที่สุดที่ k ในแผนผัง ดังนั้นหากอินพุตเป็นแบบ k =3 แล้วผลลัพธ์จะเป็น 7 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - stack :=stack เปล่า ผม :=0 ตอบ :=-1 ในขณะที่สแต็กไม่ว่างหรือรูทไม่ว่างให้ทำ ในขณะที่รูท
สมมติว่าเรามีสตริง s ของอักขระอักษรตัวพิมพ์เล็ก และอีกจำนวนหนึ่งคือ k เราต้องหาจำนวนขั้นต่ำของการเปลี่ยนแปลงที่จำเป็นในสตริง เพื่อให้สตริงที่ได้มีอักขระที่แตกต่างกันมากที่สุด k ตัว ในกรณีนี้ การเปลี่ยนแปลงจริง ๆ แล้วเป็นการเปลี่ยนอักขระตัวเดียวเป็นอักขระอื่น ดังนั้น หากอินพุตเป็น s =wxxyyzzxx, k =3
สมมติว่าเรามีรายการคำที่เป็นสตริง เราต้องจัดกลุ่มแอนนาแกรมทั้งหมดเข้าด้วยกันและคืนค่าขนาดของการจัดกลุ่มที่ใหญ่ที่สุด ดังนั้น หากอินพุตเป็นเหมือนคำ =[xy, yx, xyz, zyx, yzx, wwwww] ผลลัพธ์จะเป็น3 เป็น [xyz, zyx , yzx] คือการจัดกลุ่มที่ใหญ่ที่สุด เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - lookup
สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums และจำนวนเต็ม k เราต้องเลือกองค์ประกอบจาก nums เพื่อสร้างรายการของขนาด k เพื่อให้ความแตกต่างระหว่างจำนวนเต็มที่มากที่สุดในรายการและจำนวนเต็มที่น้อยที่สุดในรายการจะต่ำที่สุด และเราจะคืนส่วนต่างนี้คืนให้ ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[3, 11, 6, 2, 9], k
สมมติว่าเรามีรายการตัวเลข ตอนนี้ ให้พิจารณารายการหมายเลขแบบวงกลมที่จุดเริ่มต้นและจุดสิ้นสุดของหมายเลขเป็นเพื่อนบ้าน เราต้องหาผลรวมสูงสุดของรายการย่อยที่ไม่ว่างในรายการแบบวงกลม ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[2, 3, -7, 4, 5] ผลลัพธ์จะเป็น 14 เนื่องจากเราสามารถหารายการย่อย [4, 5, 2, 3] ซึ่งรวมเป
สมมติว่าเรามีอาร์เรย์ A เราต้องหารายการย่อยที่อยู่ติดกันซึ่งมีค่าสูงสุดและส่งคืนผลรวมด้วย ดังนั้นหากอาร์เรย์ A เหมือนกับ A =[-2,1,-3,4,-1,2,1,-5,4] ผลรวมจะเป็น 6 และอาร์เรย์ย่อยจะเป็น [4, -1, 2, 1]. เพื่อแก้ปัญหานี้ เราจะพยายามใช้วิธีการเขียนโปรแกรมแบบไดนามิก กำหนดอาร์เรย์ dp เท่ากับขนาด A และเต
สมมติว่าเรามีรายการของตัวเลขที่เรียกว่า nums เราจะกำหนดฟังก์ชันที่ส่งกลับผลรวมที่ใหญ่ที่สุดของตัวเลขที่ไม่อยู่ติดกัน ที่นี่ตัวเลขสามารถเป็น 0 หรือติดลบ ดังนั้น หากอินพุตเป็นแบบ [3, 5, 7, 3, 6] ผลลัพธ์จะเป็น 16 เนื่องจากเราสามารถเอา 3, 7 และ 6 เพื่อให้ได้ 16 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่าน
สมมติว่าเรามีต้นไม้ไบนารี เราต้องหาผลรวมสูงสุดของเส้นทางใด ๆ ระหว่างสองโหนดใด ๆ ดังนั้นหากอินพุตเป็นแบบ จากนั้นเอาต์พุตจะเป็น 62 เนื่องจากโหนดเป็น [12,13,14,16,7] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดฟังก์ชัน utils() สิ่งนี้จะหยั่งราก ถ้ารูทเป็นโมฆะ คืนค่า 0 l :=utils
สมมติว่าเรามีเมทริกซ์ n × n หนึ่งตัวที่มีค่าตั้งแต่ 0 ถึง n ในที่นี้ 0 หมายถึงช่องสี่เหลี่ยมที่ไม่มีการเติม เราต้องตรวจสอบว่าเราสามารถเติมช่องสี่เหลี่ยมว่างได้หรือไม่ โดยที่ในแต่ละแถวและแต่ละคอลัมน์ ทุกตัวเลขตั้งแต่ 1 ถึง n ปรากฏขึ้นเพียงครั้งเดียว ดังนั้นหากอินพุตเป็นแบบ 0 0 2 2 0 1 1 2 3 จา
สมมติว่าเรามีต้นไม้ไบนารี เราต้องเช็คว่าใบทั้งหมดอยู่ในระดับเดียวกันหรือไม่ ดังนั้นหากอินพุตเป็นแบบ แล้วผลลัพธ์จะเป็น True เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดฟังก์ชัน dfs() สิ่งนี้จะหยั่งราก d ถ้ารูทไม่เป็นโมฆะ ถ้าทางซ้ายของรูทเป็นโมฆะ และทางขวาของรูทเป็นโมฆะ แทรก d ท
สมมติว่าเรามีต้นไม้ไบนารี เราต้องหาค่าของโหนดที่ลึกที่สุด หากมีโหนดที่ลึกที่สุดมากกว่าหนึ่งโหนด ให้ส่งคืนโหนดที่ลึกที่สุดด้านซ้ายสุด ดังนั้นหากอินพุตเป็นแบบ จากนั้นผลลัพธ์จะเป็น 4 เนื่องจาก 4 และ 7 นั้นลึกที่สุด แต่เหลือ 4 มากที่สุด เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - คิว :=คิวที่มี
สมมติว่าเรามีสตริงที่มีวงเล็บ ( และ ) เราต้องหาความยาวของชุดย่อยที่ยาวที่สุดของวงเล็บแบบสมดุล ดังนั้น หากอินพุตเป็น s =())(()( ผลลัพธ์จะเป็น 4 เนื่องจากเราสามารถหาลำดับย่อยได้ เช่น ()() เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - res :=0 n :=ขนาดของ s ปิด :=0 สำหรับฉันอยู่ในช่วง n - 1
สมมติว่าเรามีไบนารีทรี เราต้องแสดงค่าของแต่ละระดับโดยสลับจากซ้ายไปขวาและขวาไปซ้าย ดังนั้นหากอินพุตเป็นแบบ จากนั้นผลลัพธ์จะเป็น [5, -10, 4, -2, -7, 15] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - ถ้ารูทเป็นโมฆะ กลับรายการใหม่ s1 :=รายการเริ่มแทรกรูท s2 :=รายการใหม่ res :=รายการ
สมมติว่าเรามีแผนผังการค้นหาแบบไบนารี เราต้องแปลงเป็นรายการที่เชื่อมโยงโดยลำพังโดยใช้การข้ามผ่านของลำดับชั้น ดังนั้นหากอินพุตเป็นแบบ จากนั้นผลลัพธ์จะเป็น [5, 4, 10, 2, 7, 15, ] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - head :=โหนดรายการที่เชื่อมโยงใหม่ currNode :=หัว q :=รายการที่มีค
สมมติว่าเรามีโหนดรายการเชื่อมโยงที่เรียงลำดับขนาด n เราต้องสร้างแผนผังการค้นหาแบบไบนารีโดยรับค่าของ k =ชั้นของ (n / 2) การตั้งค่าที่เล็กที่สุดเป็นรูท จากนั้นสร้างทรีย่อยด้านซ้ายซ้ำโดยใช้รายการที่เชื่อมโยงทางด้านซ้ายของโหนด kth และสร้างทรีย่อยที่ถูกต้องซ้ำๆ โดยใช้รายการลิงก์ทางด้านขวาของโหนดที่ k ดั
สมมติว่าเรามีรายการสตริงสี ซึ่งอาจมี สีแดง สีเขียว และ สีน้ำเงิน เราต้องแบ่งพาร์ติชั่นรายการเพื่อให้สีแดงมาก่อนสีเขียว และสีเขียวมาก่อนสีน้ำเงิน ดังนั้น หากอินพุตเป็นสี =[สีน้ำเงิน, เขียว, น้ำเงิน, แดง, แดง] ผลลัพธ์จะเป็น [สีแดง, สีแดง, สีเขียว, ฟ้า, ฟ้า] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี
สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums ซึ่งแต่ละค่าเกิดขึ้นสามครั้งพอดี ยกเว้นค่าหนึ่งที่เกิดขึ้นครั้งเดียว เราต้องหาค่าที่ไม่ซ้ำใคร เราต้องแก้พื้นที่ไม่คงที่ ดังนั้น หากอินพุตเป็น nums =[3, 3, 3, 8, 4, 4, 4] ผลลัพธ์จะเป็น 8 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - m :=แผนที่ที่มีค่าและค
สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums เราจะสร้างรายการใหม่ โดยที่แต่ละองค์ประกอบในรายการใหม่คือจำนวนขององค์ประกอบที่เล็กกว่าทางด้านขวามือขององค์ประกอบนั้นในรายการอินพุตดั้งเดิม ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[4, 5, 9, 7, 2] ผลลัพธ์จะเป็น [1, 1, 2, 1, 0] เนื่องจากมี 1 องค์ประกอบเล็กกว่าทางด