Skip to content

64. Minimum Path Sum

Edited by Charles

Medium · Python · Dynamic Programming

Problem

Read the original problem on LeetCode.

The official page contains the problem statement, examples, and constraints.

Explanation, examples & other approaches

Core idea

Refer to 62. Unique Paths for the same idea.

Original study notes follow, including intermediate snippets and earlier attempts.

Refer to 62. Unique Paths for the same idea.

Study record
Field Value
Attempts 1
Mastery ❚
The Latest Attempt September 17, 2026

Python solution

class Solution:
    def minPathSum(self, grid: list[list[int]]) -> int:
        m, n = len(grid), len(grid[0])

        dp = [[0] * n for _ in range(m)]
        dp[0][0] = grid[0][0]

        for i in range(1, m):
            dp[i][0] = dp[i - 1][0] + grid[i][0]

        for j in range(1, n):
            dp[0][j] = dp[0][j - 1] + grid[0][j]

        for i in range(1, m):
            for j in range(1, n):
                dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j]

        return dp[-1][-1]

Back to Bonus Dynamic Programming · All Algorithm notes