Dynamic Programming เป็นหนึ่งในกระบวนทัศน์อัลกอริทึมที่แตกต่างกัน ในแนวทางนี้ ปัญหาสามารถแบ่งออกเป็นปัญหาย่อยและเก็บผลลัพธ์ของปัญหาย่อยก่อนหน้าบางปัญหาเพื่อใช้ในอนาคต ช่วยลดเวลาในการคำนวณสำหรับงาน
เทคนิคการโปรแกรมแบบไดนามิกมีสองประเภท -
- ปัญหาย่อยที่ทับซ้อนกัน
- โครงสร้างพื้นฐานที่เหมาะสมที่สุด
ในส่วนนี้เราจะกล่าวถึง -
- ปัญหาการซ้อนกล่อง
- รวบรวมคะแนนสูงสุดในตารางโดยใช้สองเส้นทาง
- คำนวณผลรวมของหลักในตัวเลขทั้งหมดตั้งแต่ 1 ถึง n
- นับไบนารีสตริงโดยไม่มี 1 ติดต่อกัน
- นับจำนวนวิธีเพื่อให้ได้คะแนนในเกม
- นับวิธีที่เป็นไปได้ในการสร้างอาคาร
- นับวิธีไปถึงบันไดที่ n
- แก้ไขระยะทาง
- ปริศนาวางไข่
- ค้นหาตัวเลขที่ผลรวมของหลักเท่ากับค่า
- ต้นทุนขั้นต่ำในการไปถึงปลายทาง
- อัลกอริทึม Floyd-Warshall
- สร้างลำดับฟีโบนักชี
- จำนวนสูงสุดของ 'A' พร้อมปุ่มสี่ปุ่ม
- ปัญหาชุดอิสระที่ใหญ่ที่สุด
- อาร์เรย์ Subarray ผลรวมที่ใหญ่ที่สุด
- บิตโทนิคที่ยาวที่สุด
- ลำดับรองร่วมที่ยาวที่สุด
- เส้นทางต่อเนื่องที่ยาวที่สุดจากอักขระเริ่มต้นที่กำหนด
- การเพิ่มขึ้นที่ยาวที่สุด
- ความยาวลำดับขั้นของพาลินโดรมที่ยาวที่สุด
- สตริงย่อยพาลินโดรมที่ยาวที่สุด
- การคูณเมทริกซ์เชน
- ความยาวสูงสุดของสายโซ่คู่
- กำไรสูงสุดหลังจากซื้อและขายหุ้นสองครั้ง
- เมทริกซ์ย่อยสี่เหลี่ยมขนาดสูงสุดที่มี 1s ทั้งหมด
- ผลรวมสูงสุดที่เพิ่มขึ้นตามลำดับ
- ผลรวมสูงสุดของสี่เหลี่ยมผืนผ้าในเมทริกซ์
- ค้นหาเส้นทางต้นทุนขั้นต่ำจากเมทริกซ์
- ต้นทุนขั้นต่ำสำหรับสามเหลี่ยมหลายเหลี่ยม
- โทเค็นขั้นต่ำเพื่อไปถึงปลายทาง
- ปัญหาการเปลี่ยนเหรียญขั้นต่ำ
- จำนวนการกระโดดขั้นต่ำที่เป็นไปได้
- ผลรวมของกำลังสองสมบูรณ์ขั้นต่ำเพื่อให้ได้มูลค่า
- ปัญหาปุ่มกดตัวเลขมือถือ
- ผลรวมสูงสุดโดยแตกจำนวนสามครั้ง
- ต้นทุนของ BST ที่เหมาะสมที่สุด
- ปัญหาการจับคู่เพื่อน
- ปัญหาการจับคู่รูปแบบสัญลักษณ์แทน
- อัลกอริธึมการแบ่งพาร์ทิชัน Palindrome
- ตรวจสอบความเป็นไปได้ของการแบ่งชุดของผลรวมที่เท่ากัน
- ปัญหาการตัดแกน
- ซูเปอร์ซีเควนซ์ร่วมที่สั้นที่สุด
- ปัญหาผลรวมย่อย
- จำนวนรวมที่ไม่ลดลงในค่า N-digit
- ตัวเลขน่าเกลียด
- ปัญหาการปกคลุมจุดยอด
- ปัญหาการจัดตารางงานแบบถ่วงน้ำหนัก
- ปัญหาการตัดคำ