หน้าแรก
หน้าแรก
สมมติว่าเรามีรายการสตริงที่เรียกว่ายีน ซึ่งแต่ละองค์ประกอบมีความยาวเท่ากัน และแต่ละองค์ประกอบมีอักขระ A, C, G และ/หรือ T ตอนนี้มีกฎบางอย่าง - เมื่อสองสตริง s1 และ s2 เป็นสตริงเดียวกันยกเว้นหนึ่งอักขระ ดังนั้น s1 และ s2 จะอยู่ในกลุ่มการกลายพันธุ์เดียวกัน เมื่อสองสตริง s1 และ s2 อยู่ในกลุ่ม และ
สมมติว่าเรามีต้นไม้ไบนารี เราต้องตรวจสอบความสูงของมันว่าสมดุลหรือไม่ เรารู้ว่าสำหรับต้นไม้ที่มีความสูงสมดุล สำหรับทุกโหนดในต้นไม้ ความแตกต่างแน่นอนของความสูงของต้นไม้ย่อยด้านซ้ายและความสูงของต้นไม้ย่อยด้านขวาคือ 0 หรือ 1 ดังนั้นหากอินพุตเป็นแบบ แล้วผลลัพธ์จะเป็น True เพื่อแก้ปัญหานี้ เราจะทำตาม
สมมติว่าเรามีตัวเลข n เราต้องหาความยาวของ 1s ที่ต่อเนื่องกันยาวนานที่สุดในการแทนค่าไบนารี ดังนั้น หากอินพุตเป็น n =312 เอาต์พุตจะเป็น 3 เนื่องจาก 312 เป็น 100111000 ในรูปแบบไบนารี และมี 1 วินาทีติดต่อกัน 3 ครั้ง เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - ret :=0, len :=0 สำหรับการเริ่มต้น
สมมติว่าเรามีต้นไม้ไบนารี ถ้าเราเห็นต้นไม้จากด้านซ้าย เราก็จะเห็นองค์ประกอบบางอย่างของมัน เราต้องแสดงองค์ประกอบเหล่านั้น ดังนั้นถ้าต้นไม้เป็นเหมือน − ผลลัพธ์จะเป็น [1,2,5] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดอาร์เรย์ ret กำหนดฟังก์ชัน dfs() สิ่งนี้จะใช้โหนด c เริ่มต้นด้วย 1
สมมติว่าเรามีต้นไม้ไบนารี เราต้องสำรวจต้นไม้นี้โดยใช้รูปแบบการข้ามผ่านลำดับระดับ ดังนั้นถ้าต้นไม้เป็นเหมือน ลำดับการข้ามผ่านจะเป็นดังนี้:[1,2,3,5,4] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดคิวคิวเพื่อจัดเก็บโหนด แทรกรูทลงใน que ในขณะที่ que ไม่ว่างเปล่าให้ทำ item :=ไอเทมอยู
สมมติว่าเรามีไบนารีทรี ระดับของรูทคือ 1 ระดับของลูกคือ 2 เป็นต้น เราต้องหาระดับ X ที่เล็กที่สุดเพื่อให้ผลรวมของค่าทั้งหมดของโหนดที่ระดับ X มีค่าน้อยที่สุด ดังนั้นถ้าต้นไม้เป็นเหมือน − ผลลัพธ์จะเป็น 2 เนื่องจากผลรวมคือ 4 – 10 =-6 ซึ่งเป็นค่าต่ำสุด เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - ร
สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums และอีกจำนวนหนึ่งคือ k เราต้องตรวจสอบว่ารายการสามารถแบ่งออกเป็นรายการได้หรือไม่ โดยแต่ละรายการมีค่า k และค่าต่างๆ เพิ่มขึ้นอย่างต่อเนื่อง ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[4, 3, 2, 4, 5, 6], k =3 ผลลัพธ์จะเป็น True เนื่องจากเราสามารถแบ่งรายการออกเป็น [2,
สมมติว่าเรามีรายการตัวเลข เราต้องหาลำดับย่อยของบิโทนิกที่ยาวที่สุด Aswe ผูกลำดับว่ากันว่าเป็น bitonic ถ้ามันเพิ่มขึ้นอย่างเคร่งครัดแล้วลดลงอย่างเคร่งครัด ลำดับที่เพิ่มขึ้นอย่างเข้มงวดคือบิตโทนิก หรือลำดับที่ลดลงอย่างเคร่งครัดก็เป็นบิตโทนิกเช่นกัน ดังนั้น หากอินพุตเป็น nums =[0, 8, 4, 12, 2, 10, 6,
สมมติว่าเรามีสตริง text1 และ text2 สองสตริง เราต้องหาความยาวของลำดับย่อยทั่วไปที่ยาวที่สุด ตามที่เราทราบลำดับย่อยของสตริงคือสตริงใหม่ที่สร้างขึ้นจากสตริงเดิมโดยมีอักขระบางตัวถูกลบโดยไม่เปลี่ยนลำดับสัมพัทธ์ของอักขระที่เหลือ (ตัวอย่างเช่น abe เป็นผลสืบเนื่องมาจาก abcde แต่ adc ไม่ใช่) ลำดับย่อยทั่วไปข
สมมติว่าเรามีสตริงตัวพิมพ์เล็ก X และ Y เราต้องหาความยาวของสตริงย่อยร่วมที่ยาวที่สุด ดังนั้น หากอินพุตเป็นเหมือน X =helloworld, Y =worldbook ผลลัพธ์จะเป็น 5 เนื่องจาก world เป็นสตริงย่อยทั่วไปที่ยาวที่สุด และมีความยาวเท่ากับ 5 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดขนาดอาร์เรย์ที่ยาวท
สมมติว่าเรามีต้นไม้ไบนารีสองต้น และพิจารณาว่าเมื่อเราใส่หนึ่งในต้นไม้เหล่านั้นเพื่อคลุมอีกต้นหนึ่ง โหนดของต้นไม้สองต้นจะซ้อนทับกันในขณะที่อีกต้นซ้อนทับกัน เราต้องรวมพวกมันเข้าเป็นไบนารีทรีใหม่ กฎการผสานจะเป็นเช่นนั้น ถ้าสองโหนดซ้อนทับกัน ให้รวมค่าของโหนดเป็นค่าใหม่ของโหนดที่ผสาน มิฉะนั้น โหนดที่ไม่ว
สมมติว่าเรามีจำนวนบวก n เราต้องหาจำนวนน้อยที่สุดของจำนวนเต็มกำลังสองสมบูรณ์ที่ผลรวมเท่ากับ n ดังนั้นหากตัวเลขคือ 10 ผลลัพธ์ก็คือ 2 เนื่องจากตัวเลขคือ 10 =9 + 1 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - สร้างตารางหนึ่งตารางสำหรับโปรแกรมไดนามิก ความยาว n + 1 และเติมด้วยอินฟินิตี้ dp[0] :=0 สำหรับ
สมมติว่าเรามีนิพจน์ postfix และเราต้องประเมินค่า นิพจน์ Postfix เรียกอีกอย่างว่า Reverse polish notation ที่นี่เราต้องใช้โครงสร้างข้อมูลสแต็กเพื่อแก้นิพจน์ postfix ดังนั้นหากนิพจน์คือ “21+3*” คำตอบจะเป็น 9 ให้เราดูขั้นตอน - สำหรับแต่ละอักขระ ch ในนิพจน์ postfix ให้ทำ ถ้า ch เป็นโอเปอเรเตอร์ $\odo
สมมติว่าเรามีชุดของช่วงเวลา เราต้องหาจำนวนช่วงขั้นต่ำที่ควรลบออกเพื่อให้ช่วงเวลาที่เหลือไม่ทับซ้อนกัน ดังนั้นหากช่วงเวลาคือ [[8,10],[3,5],[6,9]] ผลลัพธ์จะเป็น 1 เนื่องจากเราต้องลบ [6,9] เพื่อให้ส่วนอื่นไม่ทับซ้อนกัน . เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - n :=ขนาดของอาร์เรย์ ถ้า n เป็น 0 ให
สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums และอีกหมายเลขหนึ่ง k เราสามารถลบรายการย่อยออกจากรายการได้ไม่เกินครั้งเดียว เราต้องหาความยาวของรายการผลลัพธ์ที่ยาวที่สุดเพื่อให้จำนวนตัวเลขน้อยกว่า k และมากกว่า k อย่างเคร่งครัด ดังนั้นหากอินพุตเป็น nums =[6, 10, 8, 9, 3, 5], k =6 ผลลัพธ์จะเป็น 5 ราวกับว่าเร
สมมติว่าเรามีไม้เรียวยาว n เรายังมีรายการที่มีขนาดและราคาแตกต่างกันสำหรับแต่ละขนาด เราต้องหาราคาสูงสุดโดยการตัดแท่งแล้วขายในตลาด เพื่อให้ได้ราคาดีที่สุดโดยการตัดตำแหน่งต่างๆ และเปรียบเทียบราคาหลังตัดก้าน ดังนั้น หากอินพุตมีค่าเท่ากับราคา =[1, 5, 8, 9, 10, 17, 17, 20], n =8 ผลลัพธ์จะเป็น 22 เช่นเดีย
NULL] ให้เราดูขั้นตอน - หากรายการว่างเปล่า ให้คืนค่า null เลน :=1 สร้างหนึ่งโหนดที่เรียกว่า tail :=head ในขณะที่ next of tail ไม่เป็นโมฆะ เพิ่มเลนขึ้น 1 หาง :=ถัดจากหาง ข้างท้าย :=หัว k :=k mod len newHead :=null สำหรับ i :=0 ถึง len − k หาง :=ถัดจากหาง newHe
สมมติว่าเรามีประโยคสตริงอินพุตหนึ่งประโยคซึ่งแต่ละองค์ประกอบถูกเก็บไว้เป็นอักขระตัวเดียว เราต้องย้อนกลับสตริงทีละคำ ดังนั้น ถ้าอินพุตเป็นแบบ [t,h,e, ,m,a,n, ,i,s, , , n,l,c,e] ดังนั้นเอาต์พุตจะเป็น [n,l,c,e, ,i,s, ,m,a,n, ,t,h,e] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กลับอาร์เรย์ s เจ
สมมติว่าเรามีตัวเลขสองตัวเป็นสตริง เราต้องคูณมันและส่งคืนผลลัพธ์เป็นสตริงด้วย ดังนั้นหากตัวเลขเป็น “28” และ “25” ผลลัพธ์จะเป็น “700” เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - รับสองอาร์กิวเมนต์ x และ y มันบ่งชี้ว่า x หาร y ถ้า x <−Infinity และ y =1 ให้คืนค่าอนันต์ a :=|x|, b :=|y| และคำ
สมมติว่าเรามี S และ T สองสาย เราต้องตรวจสอบว่า S อยู่หลัง T หรือไม่ ดังนั้น หากอินพุตเป็น S =abc, T =adbrcyxd ผลลัพธ์จะเป็น True เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - ถ้า s เหมือนกับ t แล้ว − คืนความจริง n :=ขนาดของ s, m :=ขนาดของ t เจ :=0 สำหรับการเริ่มต้น i :=0 เมื่อ i