leetcode 64. 最小路径和_C++_动态规划_Medium

这篇博客介绍了如何使用C++和动态规划解决LeetCode上的第64题——最小路径和。文章通过示例解释了问题的思路,强调动态规划的关键在于记住子问题的解并处理好边界条件。提供了C++实现的代码作为解决方案。
摘要由CSDN通过智能技术生成

给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

说明:每次只能向下或者向右移动一步。

示例:

输入:
[
  [1,3,1],
  [1,5,1],
  [4,2,1]
]
输出: 7
解释: 因为路径 1→3→1→1→1 的总和最小。

思路:今天的目标就是刷完动态规划。冲鸭!!!也得一道典型的动态规划题,对于这种难度的动态规划题,只要在牢记记住子求解的答案,并且注意边界条件,和边界特殊情况就可以了。这道理求经过路径最小,就是求每一步的最小路径是什么,对于最后一个点的路径最小肯定是它的上面或者是左面经过的最小路径加上它本身数值,每一个都是如此。依次类推。计算出每一点的最小路径,直至达到我们需要的位置。

c++代码如下:

class Solution {
public:
    int minPathSum(vector<vector<int>>& grid) {
        int right=0; //向右走了几步
        int down=0; //向下走了几步
        int n=grid.size();
        int m=grid[0].size();
        vector<vector<int>> sum(n,vector<int>(m,-1));
       // sum[0]=grid[0]; //这种写法可以吗
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值