YSC2229: Introductory Data Structures and Algorithms
1. Course Syllabus
2. Software Prerequisites
3. OCaml Style Guide
1. Week 01: Introduction
2. Week 02: Working with Arrays
3. Week 03: Complexity of Algorithms and Order Notation
4. Week 04: Divide-and-Conquer Algorithms
5. Week 05: Binary Heaps and Priority Queues
6. Week 06: Abstract Data Types
7. Midterm Project: Memory Allocation and Reclamation
8. Week 07: Hashing-Based Data Structures
9. Week 08: Searching in Strings
10. Week 09: Backtracking and Dynamic Programming
10.1. Constraint Solving via Backtracking
10.2. Optimisation Problems and Dynamic Programming
11. Week 10: Data Encoding and Compression
12. Week 11: Binary Search Trees
13. Week 12: Graph Algorithms
14. Week 13: Elements of Computational Geometry
15. Final Project: Vroomba Programming
YSC2229: Introductory Data Structures and Algorithms
Docs
»
10. Week 09: Backtracking and Dynamic Programming
10. Week 09: Backtracking and Dynamic Programming
ΒΆ
10.1. Constraint Solving via Backtracking
10.1.1. Constraint Solving by Backtracking
10.1.2. Computing Solutions with Backtracking
10.1.3. Examples of CSP solved by Backtracking
10.1.4. N-Queens problem
10.2. Optimisation Problems and Dynamic Programming
10.2.1. Implementing Fibonacci numbers
10.2.2. Knapsack Problem
10.2.3. Determining the Maximal Price
10.2.4. Solving Knapsack Problem via Dynamic Programming
10.2.5. Restoring the Optimal List of Items