หน้าแรก
หน้าแรก
มาพิจารณากัน เราจะพยายามเขียนตัวอักษร A โดยใช้แป้นพิมพ์ เป้าหมายของเราคือใช้เพียงสี่ปุ่มและพยายามเขียน A สูงสุดลงในช่องข้อความ ปุ่มคือ A, C, V และ Ctrl ในการเขียนจำนวนสูงสุดของ A เราจะใช้ Ctrl + A เพื่อเลือกทั้งหมด, Ctrl + C เพื่อคัดลอก และใช้ Ctrl + V เพื่อวาง อินพุตและเอาต์พุต Input: Number of ke
ชุดอิสระเป็นชุดย่อยของโหนดต้นไม้ไบนารีทั้งหมดเมื่อไม่มีขอบระหว่างสองโหนดในชุดย่อยนั้น จากชุดขององค์ประกอบ เราจะพบชุดอิสระที่ยาวที่สุด กล่าวคือ หากองค์ประกอบถูกใช้เพื่อสร้างไบนารีทรี ชุดย่อยที่ใหญ่ที่สุดทั้งหมด โดยที่ไม่มีองค์ประกอบในชุดย่อยนั้นเชื่อมต่อถึงกัน อินพุตและเอาต์พุต Input: A binary tree
กำหนดอาร์เรย์ของจำนวนเต็ม เราต้องหาผลรวมขององค์ประกอบทั้งหมดที่อยู่ติดกันซึ่งผลรวมมากที่สุดที่จะส่งเป็นผลลัพธ์ การใช้โปรแกรมไดนามิกเราจะเก็บผลรวมสูงสุดจนถึงเทอมปัจจุบัน จะช่วยในการค้นหาผลรวมขององค์ประกอบที่อยู่ติดกันในอาร์เรย์ อินพุตและเอาต์พุต Input: An array of integers. {-2, -3, 4, -1, -2, 1, 5,
ลำดับย่อยทั่วไปที่ยาวที่สุดคือประเภทของลำดับย่อยซึ่งมีอยู่ในทั้งลำดับหรืออาร์เรย์ที่กำหนด เราจะเห็นได้ว่ามีปัญหาย่อยมากมายซึ่งถูกคำนวณซ้ำแล้วซ้ำเล่าเพื่อแก้ปัญหานี้ ด้วยการใช้คุณสมบัติโครงสร้างย่อยที่ทับซ้อนกันของการเขียนโปรแกรมไดนามิก เราสามารถเอาชนะความพยายามในการคำนวณได้ เมื่อคำนวณผลลัพธ์ของปัญหา
ซีเควนซ์จะเรียกว่าบิตโทนิก หากมีการเพิ่มขึ้นในครั้งแรกแล้วค่อยลดลง ในปัญหานี้ อาร์เรย์ของจำนวนเต็มบวกทั้งหมดจะได้รับ เราต้องหาลำดับรองที่เพิ่มขึ้นก่อนแล้วค่อยลดลง ในการแก้ปัญหานี้ เราจะกำหนดลำดับย่อยสองส่วน ได้แก่ ลำดับต่อมาที่ยาวที่สุดและลำดับต่อมาที่ลดลงที่ยาวที่สุด อาร์เรย์ LIS จะเก็บความยาวของก
กำหนดเมทริกซ์ของอักขระต่างๆ เริ่มจากอักขระตัวเดียว เราต้องหาเส้นทางที่ยาวที่สุดโดยสำรวจอักขระทั้งหมดที่มากกว่าอักขระปัจจุบัน ตัวละครเรียงต่อกัน ในการค้นหาเส้นทางที่ยาวที่สุด เราจะใช้อัลกอริธึม Depth First Search ระหว่าง DFS ปัญหาย่อยบางอย่างอาจเกิดขึ้นหลายครั้ง เพื่อหลีกเลี่ยงการคำนวณนั้น เราจะใช
ลำดับที่ยาวที่สุดที่เพิ่มขึ้นคือลำดับย่อยที่หนึ่งรายการมากกว่ารายการก่อนหน้า เราจะพยายามหา Longest Increasing Subsequence length จากชุดของจำนวนเต็ม อินพุตและเอาต์พุต Input: A set of integers. {0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15} Output: The length of longest increasing subsequence.
ในสตริงที่กำหนด เราต้องหาสตริงย่อย ซึ่งเป็นพาลินโดรมและยาวที่สุด เพื่อให้ได้สตริงย่อยพาลินโดรมที่ยาวที่สุด เราต้องแก้ปัญหาย่อยหลายๆ อย่าง ปัญหาย่อยบางรายการซ้อนทับกัน จำเป็นต้องแก้ไขหลายครั้ง ด้วยเหตุผลดังกล่าว โปรแกรมไดนามิกจึงมีประโยชน์ เมื่อใช้ตาราง เราสามารถจัดเก็บผลลัพธ์ของปัญหาย่อยก่อนหน้า แล
มีเมทริกซ์ที่มีจุดในแต่ละเซลล์ วิธีรับคะแนนสูงสุดจากกริดนั้นโดยใช้สองเส้นทาง มีเงื่อนไขบางประการที่ต้องปฏิบัติตาม - การข้ามผ่านครั้งแรกเริ่มจากเซลล์ด้านซ้ายบนในตาราง และควรไปที่มุมล่างซ้าย และในเส้นทางที่สองเริ่มจากมุมบนขวาไปมุมล่างขวา จากเซลล์เดียว เราสามารถย้ายไปที่ด้านล่างสุด ด้านซ้ายล่างของเซล
ในปัญหานี้ เราต้องหาผลรวมหลักของตัวเลขทั้งหมดในช่วง 1 ถึง n ตัวอย่างเช่น ผลรวมของหลัก 54 คือ 5 + 4 =9 เช่นนี้ เราต้องหาตัวเลขทั้งหมดและผลรวมของหลักดังกล่าว เรารู้ว่ามี 10d - 1 สามารถสร้างตัวเลขได้ซึ่งมีจำนวนหลักคือ d ในการหาผลรวมของตัวเลข d ทั้งหมดนั้น เราสามารถใช้สูตรแบบเรียกซ้ำได้ ผลรวม(10d - 1)=
ในปัญหานี้ เราต้องหาเลขฐานสองที่ไม่มีเลข 1 เรียงกัน ในสตริงไบนารี 3 บิต มีเลขฐานสองสามตัวคือ 011, 110, 111 ที่มีเลข 1 ติดต่อกัน และมีตัวเลขห้าตัวที่ไม่มีเลข 1 ที่ต่อเนื่องกัน ดังนั้นหลังจากใช้อัลกอริธึมนี้กับตัวเลข 3 บิตแล้ว คำตอบจะเป็น 5 ถ้า a[i] เป็นเซตของเลขฐานสองซึ่งมีจำนวนบิตเป็น I และไม่มี 1
ให้เราพิจารณาเกมที่ผู้เล่นสามารถทำคะแนนได้ 3, 5 หรือ 10 ในแต่ละการเคลื่อนไหว มีการให้คะแนนเป้าหมายด้วย หน้าที่ของเราคือค้นหาว่ามีวิธีใดบ้างที่จะบรรลุคะแนนเป้าหมายนั้นด้วยคะแนนสามแต้มนั้น ด้วยวิธีการเขียนโปรแกรมแบบไดนามิก เราจะสร้างรายการคะแนนทั้งหมดตั้งแต่ 0 ถึง n และสำหรับแต่ละค่า 3, 5, 10 เราเพีย
ต่อไปนี้คือจำนวนส่วน n ในแต่ละส่วน มีสองด้านบนถนนเพื่อสร้างอาคาร หากจำเป็นต้องมีพื้นที่ว่างระหว่างบ้านสองหลัง จะมีวิธีสร้างอาคารในแปลงได้กี่วิธี มีความเป็นไปได้สี่ประการในการสร้างอาคาร ด้านหนึ่งของถนน อีกด้านของถนน ไม่สามารถสร้างสิ่งปลูกสร้างได้ สองข้างทางของถนน อินพุตและเอาต์พุต Input: It takes
มีบันได n ขั้น คนหนึ่งจะไปที่บันไดที่ 1 กำหนดจำนวนบันไดสูงสุดที่เขา/เธอสามารถข้ามได้ในขั้นตอนเดียว จากข้อมูลนี้ เราต้องหาวิธีที่เป็นไปได้ในการขึ้นบันไดที่ n ให้เราพิจารณาว่าแต่ละขั้นสามารถข้ามบันไดได้สูงสุดสองขั้น ดังนั้นเราจึงสามารถหาความสัมพันธ์แบบเรียกซ้ำเพื่อแก้ปัญหานี้ได้ หนึ่งสามารถย้ายไปที่บ
นี่คือปัญหาปริศนาที่มีชื่อเสียง สมมติว่ามีอาคารที่มี n ชั้น หากเรามีไข่ m ฟอง เราจะหาจำนวนหยดขั้นต่ำที่จำเป็นในการหาชั้นที่จะทิ้งไข่ได้อย่างปลอดภัยโดยไม่ทำให้ไข่แตกได้อย่างไร มีประเด็นสำคัญที่ต้องจำ - เมื่อไข่ไม่แตกจากชั้นที่กำหนด มันจะไม่แตกสำหรับชั้นล่างด้วย หากไข่แตกจากชั้นที่กำหนด ไข่จะแตกสำหร
มีสองสตริงที่กำหนด สตริงแรกคือสตริงต้นทางและสตริงที่สองคือสตริงเป้าหมาย ในโปรแกรมนี้ เราต้องหาจำนวนการแก้ไขที่เป็นไปได้ในการแปลงสตริงแรกเป็นสตริงที่สอง การแก้ไขสตริงสามารถเป็นได้ทั้ง แทรกองค์ประกอบบางส่วน ลบบางสิ่งออกจากสตริงแรก หรือแก้ไขบางสิ่งเพื่อแปลงเป็นสตริงที่สอง อินพุตและเอาต์พุต Input: Two
มีตัวเลข n และค่า เราต้องหาตัวเลข n หลักทั้งหมด โดยที่ผลรวมของ n หลักทั้งหมด s จะเหมือนกับค่าที่กำหนด ที่นี่ 0 คือ noa t นับเป็นตัวเลข ตัวเลข n ต้องอยู่ในช่วง 1 ถึง 100 และค่าต้องอยู่ในช่วง 1 ถึง 500 อินพุตและเอาต์พุต Input: This algorithm takes number of digits, and the sum value. Let the digit co
สำหรับปัญหานี้ มีการหยุด N ระหว่างการเดินทาง รถเริ่มการเดินทางจากจุดจอด 0 ถึง N-1 ในตารางจะมีการระบุค่าตั๋วสำหรับสถานีทุกคู่ เราต้องหาต้นทุนขั้นต่ำเพื่อไปให้ถึงปลายทางด้วยต้นทุนที่กำหนด อินพุตและเอาต์พุต Input: The cost matrix of the journey. 0 15 80 90 ∞ 0 40 50 ∞ ∞ &n
กราฟกำกับหนึ่งกราฟจะระบุน้ำหนักระหว่างจุดยอดแต่ละคู่ และมีจุดยอดสองจุด u และ v งานของเราคือการหาระยะทางที่สั้นที่สุดจากจุดยอด u ถึงจุดยอด v โดยมีจำนวนขอบ k เท่ากัน เพื่อแก้ปัญหานี้ เราจะเริ่มจากจุดยอด u และไปที่จุดที่อยู่ติดกันทั้งหมด และเกิดขึ้นซ้ำสำหรับจุดยอดที่อยู่ติดกันโดยใช้ค่า k เป็น k - 1
ในกราฟที่มีทิศทางมีการเชื่อมโยงกันอย่างมาก เมื่อมีเส้นทางระหว่างจุดยอดแต่ละคู่ในองค์ประกอบเดียว ในการแก้ปัญหาอัลกอริธึมนี้ ประการแรก อัลกอริทึม DFS ถูกใช้เพื่อรับเวลาสิ้นสุดของแต่ละจุดยอด ตอนนี้ให้หาเวลาสิ้นสุดของกราฟทรานสโพส จากนั้นจุดยอดจะถูกจัดเรียงตามลำดับจากมากไปน้อยตามการจัดเรียงทอพอโลยี อิ