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.
Example 1:
[[1,3,1], [1,5,1], [4,2,1]]
Given the above grid map, return 7
. Because the path 1→3→1→1→1 minimizes the sum.
给定一个用非负数填充的m×n网格,找到一条从左上到右下的路径,使得路径上所有数字的总和最小。
每个点只有两个方法 来自左边和上面 找左边和上面最小的
class Solution {
public:
int minPathSum(vector<vector<int>>& v)
{
int x,y;
vector<vector<int>> ans=v;
for(x=0,y=1;y<ans[0].size();y++)//地一行
{
ans[x][y]+=ans[x][y-1];
}
for(y=0,x=1;x<ans.size();x++)//第一列
{
ans[x][y]+=ans[x-1][y];
}
for(x=1;x<ans.size();x++)
{
for(y=1;y<ans[0].size();y++)
{
ans[x][y]+=min(ans[x-1][y],ans[x][y-1]);
}
}
return ans[v.size()-1][v[0].size()-1];
}
};