最小路径和
题目链接:最小路径和
给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
说明:每次只能向下或者向右移动一步。
方法一:二维动态规划
class Solution {
public:
int dp[210][210];
int minPathSum(vector<vector<int>>& grid) {
for (int i = 0;i < grid.size();i++) {
for (int j = 0;j < grid[0].size();j++) {
if (i-1 >= 0 && j - 1 >= 0) {
dp[i][j] = min(dp[i-1][j] , dp[i][j-1]);
}else if (i-1 >= 0) dp[i][j] = dp[i-1][j];
else if (j-1 >= 0) dp[i][j] = dp[i][j-1];
dp[i][j] += grid[i][j];
}
}
return dp[grid.size()-1][grid[0].size()-1];
}
};