1 class Solution 2 { 3 public: 4 int minPathSum(vector<vector<int>>& grid) 5 { 6 int szrow=grid.size(); 7 int szcol=grid[0].size(); 8 vector<int> cur(szcol,0); 9 cur[0]=grid[0][0]; 10 for(int i=1;i<szcol;i++) 11 cur[i]=grid[0][i]+cur[i-1]; 12 for(int i=1;i<szrow;i++) 13 { 14 cur[0]=cur[0]+grid[i][0]; 15 for(int j=1;j<szcol;j++) 16 cur[j]=min(cur[j-1],cur[j])+grid[i][j]; 17 } 18 return cur[szcol-1]; 19 } 20 };
有点像计算路径那个题,核心方法是一样的,只是这次的变量变为当前最小消耗值而不是之前的当前路径数量。