หน้าแรก
หน้าแรก
สมมติว่าเรามีตัวเลข n และ p และ q สมมติว่าเรากำลังยืนอยู่ในแถวของคนจำนวน n คน เราไม่รู้ว่าเราอยู่ในตำแหน่งไหน แต่เรารู้ว่ามีคนอย่างน้อย p ข้างหน้าเรา และมากที่สุด q คนข้างหลังเรา เราต้องหาจำนวนตำแหน่งที่เป็นไปได้ที่เราสามารถทำได้ ดังนั้น หากอินพุตเป็น n =10, p =3, q =4 เอาต์พุตจะเป็น 5 เนื่องจากม
สมมติว่าเรามีรายการราคาที่แสดงราคาหุ้นของบริษัทตามลำดับเวลา เราต้องหากำไรสูงสุดที่เราสามารถทำได้จากการซื้อและขายหุ้นนั้นเพียงครั้งเดียว เราต้องจำไว้ว่าเราต้องซื้อก่อนจึงจะขายได้ ดังนั้น หากอินพุตเป็นเหมือนราคา =[10, 12, 9, 6, 8, 12] ผลลัพธ์จะเป็น 6 เนื่องจากเราสามารถซื้อที่ 6 และขายที่ 12 เพื่อแก้
สมมติว่าเรามีกราฟแบบไม่มีทิศทาง 1 กราฟ เราต้องตรวจสอบว่ากราฟนั้นเป็นแบบสองส่วนหรือไม่ ดังที่เราทราบดีว่ากราฟเป็นแบบสองส่วน เมื่อเราสามารถแบ่งโหนดของกราฟออกเป็นสองชุด A และ B เพื่อให้ทุกขอบ {u,v} ในกราฟมีหนึ่งโหนด u ใน A และอีกโหนด v ใน B ดังนั้นหากอินพุตเป็นแบบ จากนั้นผลลัพธ์จะเป็น True [0,4] อย
สมมติว่าเรามีรายการราคาที่แสดงราคาหุ้นของบริษัทตามลำดับเวลา เราต้องหากำไรสูงสุดที่เราสามารถทำได้จากการซื้อและขายหุ้นนั้นหลายครั้ง เราต้องจำไว้ว่าเราต้องซื้อก่อนจึงจะขายได้ ดังนั้น หากอินพุตเป็นเหมือนราคา =[10, 50, 30, 40, 60] ผลลัพธ์จะเป็น 70 ตามที่เราสามารถซื้อได้ที่ 10 ขายที่ 50 ซื้อที่ 30 และขาย
สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums และอีกหมายเลขหนึ่งคือ k หากเราเริ่มต้นที่ดัชนี k และที่ดัชนี i ใดๆ เราสามารถไปทางซ้ายหรือขวาด้วยจำนวนขั้นตอนที่ nums[i] ได้พอดี เราต้องเช็คก่อนว่าเราจะไปถึงจุดสิ้นสุดของรายการได้หรือไม่ ดังนั้น หากอินพุตเป็น nums =[0, 0, 2, 1, 3, 3, 1, 1] k =2 ผลลัพธ์จะเป็น
สมมติว่าเรามีรายการสตริงที่เรียกว่าคำและสตริงอื่นที่เรียกว่าตัวอักษร เราต้องค้นหาความยาวของสตริงที่ยาวที่สุดในคำที่สามารถสร้างจากอักขระในตัวอักษรได้ หากไม่สามารถสร้างคำได้ ให้คืนค่า 0 เราไม่สามารถใช้ตัวอักษรซ้ำได้ ดังนั้นหากอินพุตเป็นคำ =[dog, cat, rat, bunny, lion, bat], ตัวอักษร =gabctnyu ผลลัพธ์
สมมติว่าเรามีเมทริกซ์ขนาด n x n M เราต้องหาผลรวมขององค์ประกอบทั้งหมดที่สร้างรูปร่าง Z ในเมทริกซ์ ดังนั้นหากอินพุตเป็นแบบ 4 3 2 9 1 8 2 5 6 จากนั้นผลลัพธ์จะเป็น 23 เนื่องจากองค์ประกอบคือ [4+3+2+1+2+5+6] =23 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - n :=จำนวนแถวของเมทริกซ์ ถ้า n <=2 แล้ว ส
สมมติว่าเรามีรายการสองรายการที่เรียกว่าน้ำหนักและค่าซึ่งมีความยาวเท่ากันและอีกจำนวนหนึ่งเรียกว่าความจุ k ที่นี่ weights[i] และ values[i] จะแสดงน้ำหนักและมูลค่าของรายการ ith ตอนนี้ เราสามารถรับน้ำหนักได้มากสุด k ความจุ และเราสามารถถ่ายได้มากสุดหนึ่งสำเนาของแต่ละรายการ เราต้องค้นหาจำนวนมูลค่าสูงสุดที่
สมมติว่าเรามีสตริงไบนารีสองตัว a และ b เราต้องบวกเลขฐานสองเหล่านี้และหาผลรวมของพวกมัน เช่นเดียวกับสตริง ดังนั้น หากอินพุตเป็น a =10110, b =10010 เอาต์พุตจะเป็น 101000 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - ret :=สตริงว่าง นา :=ขนาดของ a, nb :=ขนาดของ b i :=na - 1, j :=nb - 1 พกพา :=0 =0) ให
สมมติว่าเรามีรายการหมายเลขที่เรียกว่า nums ซึ่งแสดงป้ายรถเมล์ในสายที่ nums[i] แสดงเวลาที่รถบัสต้องมาถึงสถานี i ตอนนี้รถเมล์ทำได้แค่วิ่งไปข้างหน้า เราต้องหาจำนวนรถเมล์ขั้นต่ำที่จำเป็นในการผ่านป้ายทั้งหมด ดังนั้น หากอินพุตเท่ากับ nums =[1, 2, 7, 9, 3, 4] เอาต์พุตจะเป็น 2 เนื่องจากบัสหนึ่งบัสสามารถหยุ
สมมติว่าเรามีบันไดที่มี n ขั้น และเราสามารถปีนขึ้นไปทีละ 1 หรือ 2 ขั้นก็ได้ เราต้องกำหนดฟังก์ชันที่คืนค่าจำนวนวิธีที่ไม่ซ้ำกันในการขึ้นบันได ลำดับของขั้นตอนไม่ควรเปลี่ยนแปลง ดังนั้นแต่ละลำดับของขั้นตอนที่ต่างกันจึงนับเป็นวิธีหนึ่ง หากคำตอบมีขนาดใหญ่มาก ให้แก้ไขผลลัพธ์ด้วย 10^9 + 7 ดังนั้นหากอินพุต
สมมุติว่าเรามีบันไดที่มี n ขั้น และเราก็มี k อีกตัวด้วย ตอนแรกเราอยู่ที่บันได 0 และเราสามารถปีนขึ้นไปทีละ 1, 2 หรือ 3 ขั้นได้ แต่เราสามารถขึ้นบันไดได้เพียง 3 ขั้นเท่านั้น ไม่เกิน k ครั้ง ตอนนี้เราต้องหาหลายวิธีที่จะขึ้นบันไดได้ ดังนั้นหากอินพุตเป็น n =5, k =2 เอาต์พุตจะเป็น 13 เนื่องจากเราสามารถขึ้
สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums และอีกหมายเลขหนึ่งคือ k หากเราเริ่มต้นที่ดัชนี k และที่ดัชนี i ใดๆ เราสามารถไปทางซ้ายหรือขวาด้วยจำนวนขั้นตอนที่ nums[i] ได้พอดี เราต้องเช็คก่อนว่าเราจะไปถึงจุดสิ้นสุดของรายการได้หรือไม่ ดังนั้น หากอินพุตเป็น nums =[0, 0, 2, 1, 3, 3, 1, 1] k =2 ผลลัพธ์จะเป็น
สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums ตอนนี้ให้พิจารณาอาร์เรย์ย่อยที่อยู่ติดกันทุกรายการ รวมแต่ละอาร์เรย์ย่อยเหล่านี้และส่งกลับผลรวมของค่าทั้งหมดเหล่านี้ สุดท้าย ดัดแปลงผลลัพธ์ 10 ** 9 + 7 ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[3, 4, 6] ผลลัพธ์จะเป็น 43 เนื่องจากเรามีอาร์เรย์ย่อยต่อไปนี้ − [3] [4
สมมติว่าเรามีสตริงที่ไม่ว่างสองสตริง s และ t ที่มีความยาวเท่ากัน เราต้องแบ่งมันออกเป็นสตริงย่อยเพื่อให้สตริงย่อย s และ t แต่ละคู่มีขนาดเท่ากันและเป็นแอนนาแกรมของกันและกัน ตอนนี้ให้หาดัชนีการตัดเพื่อให้ได้จำนวนการตัดสูงสุดของ s และ t หากไม่พบผลลัพธ์ ให้ส่งคืนรายการว่าง ดังนั้น หากอินพุตเป็น s =bowca
สมมติว่าเรามีรายชื่อไพ่ และเราต้องการเรียงลำดับไพ่ในลักษณะที่ไพ่ถูกเปิดเผยในลำดับจากน้อยไปมาก อย่างที่เราทราบ ไพ่ถูกเปิดเผยในลักษณะนี้:1. ไพ่บนสุดจะถูกลบออกและเปิดเผย จากนั้นไพ่ใบต่อไปจะหายไปทางด้านหลัง 2. ขั้นตอนที่ 1 ทำซ้ำจนกว่าจะไม่มีการ์ดอีกต่อไป เราต้องหาลำดับของไพ่ให้เปิดเผยตามลำดับจากน้อยไปมา
สมมติว่าเรามีโหนดรายการที่เชื่อมโยงโดยลำพัง เราต้องหาค่าของโหนดกลาง และเมื่อมีโหนดกลางสองโหนด เราจะส่งคืนโหนดที่สอง เราต้องพยายามแก้ปัญหานี้ในครั้งเดียว ดังนั้น หากอินพุตเป็น [5,9,6,4,8,2,1,4,5,2] เอาต์พุตจะเป็น 2 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้- p:=โหนด d:=0, l:=0 ในขณะที่โหนด
สมมติว่าเรามีรายการหมายเลขที่เรียกว่า nums เราต้องหารายการใหม่ที่มีความยาวเท่ากันโดยที่ค่าที่ดัชนี i ถูกกำหนดให้กับองค์ประกอบถัดไปที่มากกว่า nums[i] ทางด้านขวา โดยวนกลับมาที่ด้านหน้าของรายการเมื่อจำเป็น หากไม่มีตัวเลขใดที่มากกว่า ก็ควรตั้งค่าเป็น -1 ดังนั้น หากอินพุตเป็น [4, 5, 1, 3] เอาต์พุตจะเป็น
สมมติว่าเรามีไบนารีทรี เราต้องหาผลรวมที่ใหญ่ที่สุดของเส้นทางใดๆ ที่เปลี่ยนจากโหนดรูทไปยังโหนดลีฟ ดังนั้นหากอินพุตเป็นแบบ จากนั้นผลลัพธ์จะเป็น 29 จากรูท หากเราทำตามเส้นทาง 5-<9-<7-<8 มันจะเป็น 29 หลังจากบวกแล้ว เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้- กำหนดฟังก์ชั่น walk() นี่จะใช้โหนด s
สมมติว่าเรามีเมทริกซ์ 2 มิติที่แต่ละเซลล์เก็บเหรียญไว้ หากเราเริ่มต้นจาก [0,0] และสามารถเคลื่อนที่ไปทางขวาหรือลงได้เท่านั้น เราต้องหาจำนวนเหรียญสูงสุดที่เรารวบรวมได้จากมุมขวาล่าง ดังนั้นหากอินพุตเป็นแบบ 1 4 2 2 0 0 0 5 จากนั้นผลลัพธ์จะเป็น 14 ในขณะที่เราใช้เส้นทาง:[1, 4, 2, 2,