64. Minimum Path Sum
2026/1/12大约 1 分钟约 304 字
64. Minimum Path Sum
难度: Medium
题目描述
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right, which minimizes the sum of all numbers along its path.
Note: You can only move either down or right at any point in time.
Example 1:

Input: grid = [[1,3,1],[1,5,1],[4,2,1]] Output: 7 Explanation: Because the path 1 → 3 → 1 → 1 → 1 minimizes the sum.
Example 2:
Input: grid = [[1,2,3],[4,5,6]] Output: 12
Constraints:
m == grid.lengthn == grid[i].length1 <= m, n <= 2000 <= grid[i][j] <= 200
解题思路
代码实现
解决方案
java
class Solution {
public int minPathSum(int[][] grid) {
int m = grid.length;
int n = grid[0].length;
int[][] dp = new int[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
int target = 0;
if (i == 0 && j==0) {
target = 0;
} else if (i == 0) {
target = dp[i][j - 1];
} else if (j== 0) {
target = dp[i - 1][j];
}else{
target = Math.min(dp[i - 1][j], dp[i][j - 1]);
}
dp[i][j] = grid[i][j] + target;// Math.min(dp[i - 1][j], dp[i][j - 1]);
}
}
return dp[m - 1][n - 1];
}
}