Week 36 Module

Week 36 of 43
Advanced DSA
WEEK 36 LEARNING MODULE

Dynamic Programming II: Bottom-Up Tabulation

Concludes Phase 2 with Bottom-Up Tabulation, iterative DP tables, base case seeding, space optimization (rolling arrays / state compression), and 2D grid DP.

4 Practice Problems3 Core ConceptsVerified Curriculum: high Confidence

What You'll Learn

  • Master Bottom-Up DP: building iterative tables from base cases up to final target state.
  • Eliminate recursion call stack overhead and avoid Python recursion depth limits.
  • Implement Space Optimization (Rolling Array / State Compression): reduce $O(n)$ space to $O(1)$, or $O(m \times n)$ to $O(n)$.
  • Solve 1D and 2D grid path DP problems: Tribonacci, Triangle Minimum Path, Perfect Squares, and Unique Paths.

Core Concepts

Bottom-Up Tabulation

O(states * transitions)

Iteratively filling an array/table starting from base cases, evaluating dependencies in topological order.

State Compression / Rolling Array

O(1) space

Retaining only the previous state row or last k values to reduce auxiliary memory from O(N) to O(1).

2D Grid DP Transitions

O(R * C)

dp[r][c] = grid[r][c] + min(dp[r+1][c], dp[r+1][c+1]) for triangle and grid path optimization.

Algorithms Covered
Tabulated DPRolling Array Space OptimizationTriangle Minimum Path SumPerfect Squares DecompositionUnbounded Knapsack (Coin Change II)
Data Structures Applied
1D / 2D DP Tables / Arrays

We worry top-down, but we invest bottom-up.

Seth Klarman

Lecture Materials (1)

Official lecture slide decks hosted on Google Drive
Official Slide Deck1.7 MB

Bottom Up DP.pdf

Topic: Bottom Up DP

Format: PDF

Curated Practice Problems (4)

Track problem completions synced across your curriculum