您的位置:首页 > 其它

Minimum Path Sum DP

2015-04-16 17:45 260 查看


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.

class Solution {
public:
    int minPathSum(vector<vector<int> > &grid) {
        
        int i,j;
        vector< vector<int> > dp(grid.size(),vector<int> (grid[0].size()));
        dp[0][0]=grid[0][0];
        for(i=1;i<grid.size();i++)
             dp[i][0]=grid[i][0]+dp[i-1][0];
        for(i=1;i<grid[0].size();i++)
             dp[0][i]=grid[0][i]+dp[0][i-1];
        for(i=1;i<grid.size();i++)
        {
            for(j=1;j<grid[0].size();j++)
            {
                dp[i][j]=grid[i][j]+(dp[i-1][j]>dp[i][j-1]?dp[i][j-1]:dp[i-1][j]);
            }
        }
        return dp[grid.size()-1][grid[0].size()-1];
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: