Untitled
unknown
plain_text
2 years ago
670 B
12
Indexable
class Solution {
public:
int solve(vector<vector<int>>& grid,int x,int y,int n,int m,vector<vector<int>>&dp){
if(x<0 || x>=m || y<0 || y>=n) return 1e9;
if(x==n-1 && y==m-1) return grid[x][y];
if(dp[x][y]!=-1) return dp[x][y];
int l = solve(grid,x,y+1,n,m,dp); //going right
int d = solve(grid,x+1,y,n,m,dp); // going down
return dp[x][y]=grid[x][y]+min(l,d);
}
int minPathSum(vector<vector<int>>& grid) {
int n=grid.size(); //row
int m=grid[0].size(); //column
vector<vector<int>>dp(n,vector<int>(m,-1));
return solve(grid,0,0,n,m,dp);
}
};
Editor is loading...