leetcode-Minimum Path Sum-64
Posted 0_summer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-Minimum Path Sum-64相关的知识,希望对你有一定的参考价值。
输入一个矩阵,求从左上角走到右下角经过的格子的最小和
第一次用得dfs,超时
正解:dp 和上两题差不多
1 class Solution { 2 public: 3 // void dfs(vector<vector<int> > v,int i,int j,int &ans,int sum){ 4 // if(i==v.size()-1&&j==v[i].size()-1){ 5 // ans=min(ans,sum); 6 // return; 7 // } 8 // if(j+1<v[i].size()){ 9 // dfs(v,i,j+1,ans,sum+v[i][j+1]); 10 // } 11 // if(i+1<v.size()){ 12 // dfs(v,i+1,j,ans,sum+v[i+1][j]); 13 // } 14 // return; 15 // } 16 int minPathSum(vector<vector<int> >& grid) { 17 // if(grid.size()==0) return 0; 18 // int ans=INT_MAX; 19 // dfs(grid,0,0,ans,grid[0][0]); 20 // return ans; 21 if(grid.size()==0) return 0; 22 for(int i=grid.size()-2;i>=0;i--) grid[i][grid[0].size()-1]+=grid[i+1][grid[0].size()-1]; 23 for(int i=grid[0].size()-2;i>=0;i--) grid[grid.size()-1][i]+=grid[grid.size()-1][i+1]; 24 for(int i=grid.size()-2;i>=0;i--){ 25 for(int j=grid[i].size()-2;j>=0;j--){ 26 grid[i][j]+=min(grid[i+1][j],grid[i][j+1]); 27 } 28 } 29 return grid[0][0]; 30 } 31 };
以上是关于leetcode-Minimum Path Sum-64的主要内容,如果未能解决你的问题,请参考以下文章
112. Path Sum 113. Path Sum II