หน้าแรก
หน้าแรก
สมมติว่าเรามีต้นไม้ n-ary เราต้องส่งกลับการข้ามระดับของค่าโหนด การจัดลำดับอินพุต Nary-Tree จะแสดงในการข้ามผ่านเพื่อข้ามระดับ ที่นี่เด็กแต่ละกลุ่มจะถูกคั่นด้วยค่าว่าง (ดูตัวอย่าง) ต้นไม้ต่อไปนี้สามารถแสดงเป็น [1,null,3,2,4,null,5,6] ผลลัพธ์จะเป็น [[1],[3,2,4],[5,6]] เพื่อแก้ปัญหานี้ เราจะทำตาม
สมมติว่าเรามีชุดของช่วงเวลา เราต้องหาจำนวนช่วงขั้นต่ำที่เราจำเป็นต้องลบออกเพื่อให้ช่วงเวลาที่เหลือไม่ทับซ้อนกัน ดังนั้นหากช่วงเวลาคือ [1,2], [2,3], [3,4], [1,3]] ผลลัพธ์จะเป็น 1 ตามที่เราต้องลบ [1,3] เพื่อให้ ส่วนอื่นๆ ทั้งหมดไม่ทับซ้อนกัน เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - n :=ขนาดของ
สมมติว่าเรามีแผนผังการค้นหาแบบไบนารี เราจะรับหนึ่งคีย์ k และเราต้องลบคีย์ที่กำหนด k ออกจาก BST และส่งคืน BST ที่อัปเดต ดังนั้นถ้าต้นไม้เป็นเหมือน − และคีย์ k =3 จากนั้นแผนผังผลลัพธ์จะเป็น − เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดวิธีการที่เรียกว่า deleteRoot() เพื่อลบรูทโหน
สมมติว่ามีบอลลูนทรงกลมจำนวนไม่มากกระจายอยู่ในพื้นที่สองมิติ สำหรับบอลลูนแต่ละลูก จะมีพิกัดเริ่มต้นและจุดสิ้นสุดของเส้นผ่านศูนย์กลางแนวนอน จุดเริ่มต้นเล็กกว่าจุดสิ้นสุดเสมอ จะมีไม่เกิน 104 ลูกโป่ง ลูกศรหนึ่งลูกสามารถยิงขึ้นในแนวตั้งได้อย่างแม่นยำจากจุดต่างๆ ตามแนวแกน x บอลลูนที่มีตำแหน่ง xstart ถึง x
0 ของความยาว 3 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - n :=ขนาดของ nums ถ้า n <2 ให้คืนค่าเท็จ สำหรับฉันในช่วง 0 ถึง n - 1, nums[i] :=nums[i] mod n สำหรับฉันอยู่ในช่วง 0 ถึง n – 1 ถ้า nums[i] =0 ให้ทำซ้ำต่อไป ช้า =ฉัน, เร็ว =ฉัน; 0 ช้า =ถัดจากช้า เร็ว :=ถัดไปขอ
สมมติว่าเรามีรากของต้นไม้ เราต้องหาผลรวมของทรีย่อยที่บ่อยที่สุด ผลรวมของทรีย่อยของโหนดคือผลรวมของค่าโหนดทั้งหมดที่เกิดขึ้นจากทรีย่อยที่รูทที่โหนดนั้น (รวมถึงตัวโหนดด้วย) ผลรวมทรีย่อยที่บ่อยที่สุดคือจริง ๆ แล้ว หากมีการเสมอกัน ให้คืนค่าทั้งหมดที่มีความถี่สูงสุดในลำดับใดๆ ดังนั้นถ้าต้นไม้เป็นเหมือน [5
สมมติว่าเรามีต้นไม้ไบนารี เราต้องหาค่าซ้ายสุดของแถวสุดท้ายของต้นไม้นั้น ดังนั้นถ้าต้นไม้เป็นเหมือน − จากนั้นผลลัพธ์จะเป็น 7 เนื่องจากแถวสุดท้ายคือ [7, 4] และองค์ประกอบที่เหลือส่วนใหญ่เป็น 7 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - เริ่มแรกกำหนดตัวแปร ans และ lvl เป็น 0 กำหนดวิธีการห
สมมติว่าเรามีต้นไม้ไบนารี เราต้องหาองค์ประกอบที่ใหญ่ที่สุดของแต่ละระดับของต้นไม้นั้น ดังนั้นถ้าต้นไม้เป็นเหมือน − จากนั้นผลลัพธ์จะเป็น [3,5,8] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดอาร์เรย์ที่เรียกว่า ans กำหนดฟังก์ชันแบบเรียกซ้ำ Solvent() จะใช้โหนดทรี และระดับ ระดับเริ่มต้น
สมมติว่าเรามีอาร์เรย์จำนวนเต็ม องค์ประกอบทั้งหมดในอาร์เรย์นั้นไม่ซ้ำกัน การสร้างต้นไม้สูงสุดในอาร์เรย์นี้ถูกกำหนดดังนี้ - รูทจะเก็บจำนวนสูงสุดไว้ในอาร์เรย์ ทรีย่อยด้านซ้ายเป็นทรีสูงสุดที่สร้างจากด้านซ้ายของ subarray หารด้วยจำนวนสูงสุด ทรีย่อยด้านขวาคือทรีสูงสุดที่สร้างจากด้านขวาของอาร์เรย์ย
สมมติว่าเรามีไบนารีทรี เราต้องกำหนดฟังก์ชันเพื่อให้ได้ความกว้างสูงสุดของต้นไม้ที่กำหนด ในที่นี้ความกว้างของต้นไม้คือความกว้างสูงสุดในทุกระดับ เราจะพิจารณาว่าไบนารีทรีมีโครงสร้างเหมือนกับต้นไม้ไบนารีแบบเต็ม แต่บางโหนดเป็นโมฆะ ความกว้างของระดับหนึ่งคือความยาวระหว่างโหนดปลายสุด (โหนดที่ไม่ใช่ค่าว่างทาง
สมมติว่าเรามี head node root ของไบนารีทรี โดยที่ค่าของโหนดทุกอันเป็น 0 หรือ 1 เราต้องหาทรีเดียวกันโดยที่ทุกทรีย่อยที่ไม่มี 1 ถูกลบไป ดังนั้นถ้าต้นไม้เป็นเหมือน − เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดวิธีการแบบเรียกซ้ำ Solvent() ซึ่งจะใช้โหนด วิธีการจะเป็นเช่น − หากโหนดเป็นโม
สมมติว่าเรามีอาร์เรย์วงกลม C ของจำนวนเต็มที่แสดงโดย A เราต้องหาผลรวมสูงสุดของอาร์เรย์ย่อยที่ไม่ว่างเปล่าของ C นอกจากนี้ อาร์เรย์ย่อยอาจรวมแต่ละองค์ประกอบของบัฟเฟอร์ A คงที่ได้ไม่เกินครั้งเดียวเท่านั้น หากอาร์เรย์เป็นแบบ [1,-2,3,-2] ผลลัพธ์จะเป็น 3 เนื่องจากอาร์เรย์ย่อย[3] มีผลรวมสูงสุด 3 เพื่อแก้ปั
สมมติว่าเรามีลำดับการผลักและแตกสองครั้งด้วยค่าที่แตกต่างกัน เราต้องหาว่าจริงหรือไม่ก็ต่อเมื่อสิ่งนี้เป็นผลมาจากลำดับของการดำเนินการพุชและป๊อปในสแต็กว่างในตอนแรก ดังนั้นหากอินพุตเป็น push =[1,2,3,4,5] และ pop =[4,5,3,2,1] ผลลัพธ์จะเป็นจริง เราสามารถใช้ push(1), push(2), push(3), push(4), pop() :4, pu
สมมติว่าเรามีต้นไม้ไบนารี เราต้องพลิกต้นไม้ไบนารี พลิกระบุ:เลือกโหนดใด ๆ และสลับทรีย่อยย่อยซ้ายและขวา ตอนนี้ไบนารีทรี X เท่ากับฟลิปเทียบเท่ากับไบนารีทรี Y ถ้าหากว่าเราสามารถสร้าง Y จาก X ได้หลังจากการดำเนินการพลิกจำนวนหนึ่ง เราต้องเขียนวิธีการที่กำหนดว่าต้นไม้ไบนารีสองต้นมีค่าเท่ากันหรือไม่ ต้นไม้ถู
สมมติว่าเรามีต้นไม้ไบนารี เราต้องตรวจสอบว่าต้นไม้นั้นเป็นต้นไม้ไบนารีที่สมบูรณ์หรือไม่ ต้นไม้ไบนารีที่สมบูรณ์ของระดับ n มีระดับที่สมบูรณ์ n-1 และโหนดทั้งหมดที่ระดับ n ถูกเติมจากด้านซ้าย ดังนั้นหากแผนผังอินพุตเป็น − จากนั้นผลลัพธ์จะเป็นจริง เนื่องจากเป็นไบนารีทรีที่สมบูรณ์ เพื่อแก้ปัญหานี้ เรา
สมมติว่าเรามีอาร์เรย์ A เราจะใช้เทคนิคการจัดเรียงแพนเค้กใน A โดยที่ข้อจำกัดหลักคือเราสามารถใช้การดำเนินการเดียวที่เรียกว่า rev(arr, i) สิ่งนี้จะย้อนกลับองค์ประกอบของ arr จาก 0 ไปยังตำแหน่ง ith แนวคิดนี้เหมือนกับการเรียงลำดับการเลือก เราวางองค์ประกอบสูงสุดซ้ำ ๆ ที่ส่วนท้ายเพื่อลดขนาดของอาร์เรย์ ดังนั
สมมติว่าเรามีรากของต้นไม้ไบนารีที่มีโหนด N โดยที่แต่ละโหนดในทรีมีจำนวนเหรียญ node.val และมีทั้งหมด N เหรียญ ในการย้ายครั้งเดียว เราสามารถเลือกโหนดที่อยู่ติดกันสองโหนด และย้ายเพียงเหรียญเดียวจากโหนดหนึ่งไปยังโหนดอื่น (การย้ายอาจมาจากโหนดหลักไปยังโหนดย่อย หรือจากโหนดย่อยไปยังโหนดหลัก) เราต้องหาจำนวนกา
สมมติว่ามีประเทศหนึ่งที่เป็นที่นิยมสำหรับการเดินทางด้วยรถไฟ เราได้วางแผนการเดินทางด้วยรถไฟล่วงหน้าหนึ่งปี เรามีอาร์เรย์ที่ถือวันของปีที่เราจะเดินทาง ในแต่ละวันเป็นจำนวนเต็มตั้งแต่ 1 ถึง 365 ตั๋วรถไฟมีจำหน่ายสามวิธี - บัตรผ่านประเภท 1 วันจำหน่ายในราคา[0] ดอลลาร์ บัตรผ่านประเภท 1 วันจำหน่ายในราค
สมมติว่าเรามีช่วงปิดสองรายการ รายการช่วงแต่ละช่วงไม่ปะติดปะต่อแบบคู่และเรียงตามลำดับ เรามีจุดตัดกันของรายการช่วงเวลาทั้งสองนี้ เรารู้ว่าช่วงปิด [a, b] แสดงเป็น a <=b เซตของจำนวนจริง x ที่มี a <=x <=b. จุดตัดของช่วงปิดสองช่วงคือชุดของจำนวนจริงที่ว่างหรืออาจแสดงเป็นช่วงปิดก็ได้ ดังนั้นหากอินพุตเป็น
สมมติว่าเรามีโหนดรูทของต้นไม้สูงสุด:ต้นไม้สูงสุดคือต้นไม้ที่ทุกโหนดมีค่ามากกว่าค่าอื่นในทรีย่อย สมมติว่าเรามีวิธีการที่เรียกว่า construct() สิ่งนี้สามารถสร้างรูทจากรายการ A วิธีการ construct() นั้นเหมือนกับ − หากรายการ A ว่างเปล่า ให้คืนค่า null มิฉะนั้น ให้ A[i] เป็นองค์ประกอบที่ใหญ่ที่สุดของ