题目
Number: 64
Difficulty: Medium
Tags: Array, Dynamic Programming
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.
题解
找到矩阵从左上到右下的最小路径。
动态规划问题。
代码
int minPathSum(vector<vector<int>>& grid) {
int m = grid.size();
int n = grid[0].size();
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
if(!i && !j)
continue;
if(!i)
grid[i][j] += grid[i][j - 1];
else if(!j)
grid[i][j] += grid[i - 1][j];
else
grid[i][j] += min(grid[i - 1][j], grid[i][j - 1]);
}
}
return grid[m - 1][n - 1];