Skip to main content
grasp.study
About
Explore
Pricing
Log in
Try it for free
Back to course
👋
Welcome to a Grasp lesson
Create a free account
to keep studying and create your own study path.
Java Data Structures and Algorithms
·
Module 12
Dynamic Programming and Greedy Algorithms
1
Memoization for Recursive Optimization
Optimize a recursive solution with memoization (top-down DP).
2
From Memoization to Tabulation: The Fibonacci Example
Convert a memoized solution to a tabulated one (bottom-up DP), demonstrated on the Fibonacci problem.
3
0/1 Knapsack with Dynamic Programming
Solve the 0/1 Knapsack problem using dynamic programming.
4
Longest Common Subsequence: Length and Reconstruction
Find the length of the Longest Common Subsequence (LCS) and reconstruct it.
5
Longest Increasing Subsequence: DP and Optimized Solutions
Solve the Longest Increasing Subsequence (LIS) problem using both O(n^2) DP and an optimized O(n log n) approach.
6
Dynamic Programming for Matrix Chain Multiplication
Solve the Matrix Chain Multiplication problem using dynamic programming.
7
Greedy Algorithms: Activity Selection & Fractional Knapsack
Apply the greedy approach to solve the Activity Selection and Fractional Knapsack problems.
8
Merging Overlapping Intervals
Solve problems involving merging overlapping intervals.
End of course,
Back to course
Previous module
Graph Algorithms
Next module