Useful Links
Computer Science
Algorithms and Data Structures
Dynamic Programming
1. Introduction to Dynamic Programming
2. Fundamental Principles of Dynamic Programming
3. Core Implementation Approaches
4. Problem-Solving Framework
5. Linear Dynamic Programming
6. Grid-Based Dynamic Programming
7. String Dynamic Programming
8. Knapsack Problem Variants
9. Tree Dynamic Programming
10. Counting Dynamic Programming
11. Advanced Dynamic Programming Techniques
12. Complexity Analysis and Optimization
13. Practical Implementation Considerations
Fundamental Principles of Dynamic Programming
Optimal Substructure Property
Definition and Mathematical Formulation
Identifying Optimal Substructure in Problems
Testing for Optimal Substructure
Examples of Optimal Substructure
Shortest Path Problems
Longest Common Subsequence
Counter-examples Where Optimal Substructure Fails
Overlapping Subproblems Property
Definition and Characteristics
Identifying Overlapping Subproblems
Recursive Tree Analysis
Examples of Overlapping Subproblems
Fibonacci Sequence
Binomial Coefficients
Measuring Overlap Efficiency
Previous
1. Introduction to Dynamic Programming
Go to top
Next
3. Core Implementation Approaches