2D Dynamic Programming/Medium

Unique PathsPRO PASS

Time: O(M * N)Space: O(M * N)

Step 1: Setup & Initialization - Unique Paths

DP Cell Transition: grid[r][c] = grid[r-1][c] + grid[r][c-1].

Array Elements & Pointers
10
[0]
20
[1]
30
[2]
40
[3]
50
[4]
Live Variables & Invariants
status:Initialized
pattern:Unique Paths
Step 1 / 333%
Solution Code
1
function uniquePaths(m: number, n: number): number {
2
  const dp = Array.from({ length: m }, () => new Array(n).fill(1));
3
  for (let r = 1; r < m; r++) {
4
    for (let c = 1; c < n; c++) dp[r][c] = dp[r - 1][c] + dp[r][c - 1];
5
  }
6
  return dp[m - 1][n - 1];
7
}

Custom Test Case Runner

Input your custom values and visualize step-by-step trace

Quick Presets:

AI DSA Coach

Contextual Tutor for Unique Paths

Hello! I am your AI DSA Tutor for **Unique Paths** (2D Dynamic Programming). Ask me anything about this algorithm, time complexity, or request a step hint!