Skip to main content

Command Palette

Search for a command to run...

LeetCode 62: Unique Paths — Step-by-Step Visual Trace

Updated
1 min read

Medium — Dynamic Programming | Math | Combinatorics | Grid

The Problem

Find the number of unique paths from the top-left corner to the bottom-right corner of an m x n grid, where you can only move right or down.

Approach

Use dynamic programming with a 2D table where each cell represents the number of ways to reach that position. Initialize the first row and column to 1, then fill each cell as the sum of paths from the cell above and to the left.

Time: O(m n) · Space: O(m n)

Code

class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        # Initialize a 2D dp grid of size m x n with all values set to 1.
        dp = [[1] * n for _ in range(m)]

        # Fill in the dp grid using dynamic programming.
        for i in range(1, m):
            for j in range(1, n):
                dp[i][j] = dp[i - 1][j] + dp[i][j - 1]

        # The value in dp[m-1][n-1] represents the number of unique paths.
        return dp[m - 1][n - 1]

Watch It Run

Open interactive visualization

Try it yourself: Open TraceLit and step through every line.


Built with TraceLit — the visual algorithm tracer for LeetCode practice.

More from this blog

T

Tracelit

131 posts