64. Minimum Path Sum
Problem:
Analysis:
一开始无脑算上和左的最小和,肯定是错的。因为第一列和第一行不用比较,只需要加上前一个就好。
Solution:
No extra space
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:
[[1,3,1], [1,5,1], [4,2,1]]Given the above grid map, return
7
. Because the path 1→3→1→1→1 minimizes the sum.Analysis:
一开始无脑算上和左的最小和,肯定是错的。因为第一列和第一行不用比较,只需要加上前一个就好。
Solution:
No extra space
class Solution { public int minPathSum(int[][] grid) { if (grid == null || grid.length == 0 || grid[0].length == 0) { return 0; } int m = grid.length; int n = grid[0].length; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (i == 0 && j != 0 ) grid[i][j] += grid[i][j - 1]; if (i != 0 && j == 0) grid[i][j] += grid[i - 1][j]; if (i != 0 && j != 0) grid[i][j] += Math.min(grid[i - 1][j], grid[i][j - 1]); } } return grid[m - 1][n - 1]; } }
评论
发表评论