题目:
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:
// 空间复杂度哦(m*n)
int minPathSum(vector<vector<int> > &grid)
{
int m=grid.size(),n=grid[0].size();
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(i==0 && j!=0) grid[i][j] += grid[i][j-1];
if(i!=0 && j==0) grid[i][j] += grid[i-1][j];
if(i*j!=0)
grid[i][j] += min(grid[i-1][j],grid[i][j-1]);
}
}
return grid[m-1][n-1];
}
};