您的位置:首页 > 其它

leetcode 064 Minimum Path Sum

2016-05-01 19:57 330 查看
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.

Subscribe to see which companies asked this question

class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
int n = grid.size(), m = 0;

if(n == 0) return 0;

m = grid[0].size();

vector<int> cur(m, -1);

//dp[i][j] = min(dp[i-1][j],dp[i][j-1])+mat[i][j];
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
if(j>=1 && cur[j]!=-1) {
cur[j] = min(cur[j-1], cur[j])+grid[i][j];
} else if(j==0) {
if(cur[j]==-1)
cur[j] = grid[i][j];
else
cur[j] = cur[j]+grid[i][j];
} else if(cur[j]==-1) {
cur[j] = cur[j-1]+grid[i][j];
}
}
}

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