题目链接:64. 最小路径和 - 力扣(LeetCode)
下面是用动态规划的思想解决这道题的过程,相信各位小伙伴都能看懂并且掌握这道经典的动规题目的。
参考代码:
class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
int m=grid.size();
int n=grid[0].size();
//根据以上图解分析可知应该把整个dp表初始化为正无穷大,并且多开一行,多开一列
vector<vector<int>> dp(m+1,vector<int>(n+1,INT_MAX));
//初始化dp[0][1]和dp[1][0]两个特殊位置
dp[0][1]=dp[1][0]=0;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i-1][j-1];
}
}
return dp[m][n];
}
};
以上就是分析这道dp题目的整个过程啦,你学会了吗?如果以上题解对你有所帮助,那么就点亮一下小心心,点点关注呗,后期还会持续更新动态规划的经典题目哦,我们下期见!!!!!