class Solution {
public:
int minPathSum(vector<vector<int>>& grid)
{
// Update the first column by accumulating values from top to bottom
// Update the first row by accumulating values from left to right
// Update the rest of the grid by choosing the minimum path sum at each cell
for ()
{
for ()
{
// Add the minimum value from the cell above or to the left
}
}
// The bottom-right cell contains the minimum path sum
}
};
class Solution {
public:
int minPathSum(vector<vector<int>>& grid)
{
int m = grid.size(), n = grid[0].size();
for (int i = 1; i < m; ++i)
{
grid[i][0] += grid[i - 1][0];
}
for (int j = 1; j < n; ++j)
{
grid[0][j] += grid[0][j - 1];
}
for (int i = 1; i < m; ++i)
{
for (int j = 1; j < n; ++j)
{
grid[i][j] += min(grid[i - 1][j], grid[i][j - 1]);
}
}
return grid[m - 1][n - 1];
}
};
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up