阅读量:0
怎么最近全是这种题)又是动态规划,和上上题类似。
class Solution { public: int minPathSum(vector<vector<int>>& grid) { int m=grid.size(); int n=grid[0].size(); for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ if(i==0&&j==0) continue; else if(i==0) grid[i][j]=grid[i][j-1]+grid[i][j]; else if(j==0) grid[i][j]=grid[i-1][j]+grid[i][j]; else grid[i][j]=min(grid[i-1][j],grid[i][j-1])+grid[i][j]; } } return grid[m-1][n-1]; } };
可以直接用原数组储存最优路径,不需要建立新数组增加空间复杂度。