close
[[1,3,1], [1,5,1], [4,2,1]]
想成九宮格
走 1→3→1→1→1 是最小路徑
class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
int m=grid.size();
int n=grid[0].size();
n_g=vector<vector<int>>(m,vector<int>(n,0));
return minPathSum(m-1,n-1,grid);
}
private:
int minPathSum(int m,int n,vector<vector<int>>& grid){
if(m==0&&n==0)return grid[m][n];
if(m<0||n<0)return INT_MAX;
if(n_g[m][n]>0)return n_g[m][n];
return n_g[m][n]=grid[m][n]+min(minPathSum(m-1,n,grid),minPathSum(m,n-1,grid));
}
vector<vector<int>> n_g;
};
全站熱搜