Minimum Path Sum
Total Accepted: 71367
Total Submissions: 203837
Difficulty: Medium
Given a m x n grid filled with non-negative numbers,
find a path from top left to bottom right which minimizes the sum of all numbers along its path.
Note: You can only move either down or right at any point in time.
Subscribe to see which companies asked this question
Hide Similar Problems
c++ code:
class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
int m = grid.size();
int n = grid[0].size();
if(m>1)
for(int i=1;i<m;i++) grid[i][0] += grid[i-1][0];
if(n>1)
for(int j=1;j<n;j++) grid[0][j] += grid[0][j-1];
if(1==m) return grid[0][n-1];
if(1==n) return grid[m-1][0];
for(int i=1;i<m;i++)
for(int j=1;j<n;j++) {
grid[i][j] += grid[i-1][j]<grid[i][j-1]?grid[i-1][j]:grid[i][j-1];
}
return grid[m-1][n-1];
}
};