Minimum Path Sum

来源:互联网 发布:南通留学中介 知乎 编辑:程序博客网 时间:2024/06/14 03:44

算法不多说,动态规划很典型。具体的实现比较好,将二维的动态规划使用一个一维数组就解决了。

class Solution {public:    int minPathSum(vector<vector<int> > &grid) {        if(grid.size() == 0)            return 0;        vector<int> DP(grid[0].size(), 0);        DP[0] = grid[0][0];        for (int i = 1; i < grid[0].size(); ++i)            DP[i] = DP[i - 1] + grid[0][i];        for (int i = 1; i < grid.size(); ++i) {            for (int j = 0; j < grid[0].size(); ++j) {                if (j == 0) {                    DP[j] += grid[i][j];                }                else {                    DP[j] = min(DP[j], DP[j - 1]) + grid[i][j];                }            }        }        return DP[grid[0].size() - 1];    }};

http://oj.leetcode.com/problems/minimum-path-sum/

0 0
原创粉丝点击