当前位置: 首页 > news >正文

【动态规划】下降路径最小和 C++

下降路径最小和(难度:中等)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

该题对应力扣网址

思路

题目中提到:
位置 (row, col) 的下一个元素应当是 (row + 1, col - 1)、(row + 1, col) 或者 (row + 1, col + 1)

那么当我们反推的时候,dp[i][j]是由它的左上方,正上方,右上方的数字决定的,即dp[i-1][j-1],dp[i-i][j],dp[i-1][j+1]

每次从这三个位置的数据找最小的,这样就能确保,当下降到最后一行的时候,存储的路径和是最小的。

AC代码

class Solution {
public:
    int minFallingPathSum(vector<vector<int>>& matrix) {
        int m = matrix.size();
        int n = matrix[m-1].size();
        vector <vector<int>> dp (m, vector<int>(n));

        int result=INT_MAX;
        //用dp[0][0]初始化matrix[0]这一行的所有值
        copy(matrix[0].begin(),matrix[0].end(),dp[0].begin());
        int num1;
        int num3;
        for(int i=1;i<m;i++){
            for(int j=0;j<n;j++){
                num1=INT_MAX;
                num3=INT_MAX;
                if(j>0){
                    num1=dp[i-1][j-1]+matrix[i][j];
                }
                int num2=dp[i-1][j]+matrix[i][j];
                if((j+1)<n){
                    num3=dp[i-1][j+1]+matrix[i][j];
                }
                
                int temp;

                result=min({num1,num2,num3});

                dp[i][j]=result;
            }
        }

        return *min_element(dp[n-1].begin(),dp[n-1].end());
    }
};

补充:新的代码用法

*min_element()函数可以直接返回一个一维数组中最小值

return *min_element(dp[n-1].begin(),dp[n-1].end());

相关文章:

  • 【计算机网络】数据链路层深度解析
  • 【深度学习】(3)--损失函数
  • Python的基础知识,帮助初学者快速上手
  • Shader Graph Create Node
  • 如何快速恢复安卓手机删除文件
  • 解锁定位服务:Flutter应用中的高德地图定位
  • 倍增练习(1)
  • 【win工具】win安装flameshot并设置截图快捷键
  • C++ | Leetcode C++题解之第415题字符串相加
  • 微软九月补丁星期二发现了 79 个漏洞
  • 【CSS Tricks】在css中尝试一种新的颜色模型HSL
  • 向日葵好用吗?4款稳定的远程控制软件推荐。
  • C++ : 继承问题 [virtual函数调用,为什么禁止在virtual使用默认参数]
  • 深入探讨IDSIPS:信息安全的未来趋势与应用
  • Python | Leetcode Python题解之第401题二进制手表
  • 代码管理-使用TortoiseGit同步项目到Github/Gitee
  • 近期值得关注的3个线性时序模型及其未来发展综述
  • html加载页面
  • XWiki中添加 html 二次编辑失效
  • C++初阶学习第六弹------标准库中的string类
  • 中保协发布《保险机构适老服务规范》,全面规范保险机构面向老年人提供服务的统一标准
  • 小米SU7 Ultra风波升级:数百名车主要求退车,车主喊话雷军“保持真诚”
  • 警方通报:某博主遭勒索后自杀系自导自演,已立案调查
  • 第四轮伊美核谈判将于11日在阿曼举行
  • 习近平会见委内瑞拉总统马杜罗
  • 数理+AI+工程,上海交大将开首届“笛卡尔班”招生约20名