[Leetcode]-- Minimum Path Sum

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.

 

 

二维DP。设数组A[row][col],
Min[i][j] = min(Min[i-1][j], Min[i][j-1]) +A[i][j];
注意初始条件即可。

 

[Leetcode]-- Minimum Path Sum
public class Solution {
   public int minPathSum(int[][] grid) {
        int m = grid.length;
        int n = grid[0].length;
        int[][] sum = new int[m+2][n+2];
        for(int i = 0; i < m + 2; i++){
            for(int j = 0; j < n + 2; j++){
                sum[i][j] = Integer.MAX_VALUE;
            }
        }
        sum[m][n+1] = 0;
        for(int i = m; i >= 1; i--){
            for(int j = n; j >= 1; j--){
                sum[i][j] = grid[i-1][j-1] + Math.min(sum[i+1][j], sum[i][j+1]);
            }
        }
        return sum[1][1];
    }
}
[Leetcode]-- Minimum Path Sum

 

 

没必要用二维数组,用滚动数组即可。(TODO) 看水中的鱼

[Leetcode]-- Minimum Path Sum

上一篇:比树梅派更强劲的开源硬件----BeagleBone Black


下一篇:最长回文子串 HDU3068 POJ3974 CF.7D