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) { for(int i=1;i<grid.size();++i) grid[i][0]+=grid[i-1][0]; for(int j=1;j<grid[0].size();++j) grid[0][j]+=grid[0][j-1]; for(int i=1;i<grid.size();++i) { for(int j=1;j<grid[i].size();++j) { grid[i][j]+=min(grid[i-1][j],grid[i][j-1]); } } return grid[grid.size()-1][grid[0].size()-1]; } };