您的位置:首页 > 其它

LeetCode(64) Minimum Path Sum

2015-07-26 16:17 411 查看
经典的动态规划问题,详细的分析可以见题解报告Leetcode(62)(63) Unique Paths I II

[code]class Solution {
public:
    int minPathSum(vector<vector<int>>& grid) {

        int m = grid.size();
        int n = grid[0].size();

        if(1 == m && 1 == n)

            return grid[0][0];

        vector<vector<int>> matrix(m, vector<int>(n));

        matrix[m - 1][n - 1] = grid[m - 1][n - 1];

        for(int column = n - 2; column >= 0; column--)

            matrix[m - 1][column] = grid[m - 1][column] + matrix[m - 1][column + 1];

        for(int row = m - 2; row >= 0; row--)

            matrix[row][n - 1] =  grid[row][n - 1] + matrix[row + 1][n - 1];

        for(int row = m - 2; row >= 0; row--) {

            for(int column = n - 2; column >= 0; column--) {

                matrix[row][column] = grid[row][column] + min(matrix[row][column + 1], matrix[row + 1][column]);

            }

        }

        return matrix[0][0];

    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: