动态规划-931.下降路径最小和-力扣(LeetCode)

article/2025/9/9 5:05:57

一、题目解析

从最顶上出发,有三个位置选择,左中下(边界除外),使其走到最下面时下降路径最小。

二、算法原理

1、状态表示

我们需要的是到达[i,j]的最小路径和,所以此时dp[i][j]表示:到达[i,j]位置时,最小的下降路径

2、状态转移方程

对于某个位置有三种下降方式,自然也就有三种到达该位置的方式

 

dp[i][j]  从[i-1,j-1]->[i,j]->dp[i-1][i-1]+matrix[i][j]

           从[i-1,j]->[i,j]->dp[i-1][j]+matrix[i][j]

           从[i-1][j+1]->[i,j]->dp[i-1][j+1]+matrix[i][j]

dp[i][j]=min(dp[i-1][j-1]+matrix[i][j],min(dp[i-1][j]+matrix[i][j],dp[i-1][j+1]+matrix[i][j]))

3、初始化

 

除了最上面一排初始化为0,其余位置要初始化为最大值,由于min的原因,如果都初始化为0,则会计算出错

4、填表顺序

从上往下,从左往右

5、返回值

由于到达最下面就停止了,所以取最后一排的最小值

自己动手实现一下吧,链接:931. 下降路径最小和 - 力扣(LeetCode) 

三、代码示例

class Solution {
public:int minFallingPathSum(vector<vector<int>>& matrix) {int n = matrix.size();vector<vector<int>> dp(n+1,vector<int>(n+2,INT_MAX));for(int j = 0;j<n+2;j++) dp[0][j] = 0;for(int i = 1;i<=n;i++){for(int j = 1;j<=n;j++){dp[i][j] = min(dp[i-1][j-1],min(dp[i-1][j],dp[i-1][j+1])) + matrix[i-1][j-1];}}int ret = INT_MAX;for(int j = 1;j<=n;j++) ret = min(ret,dp[n][j]);return ret;}
};

 

 

看到最后,如果对您有所帮助,还请点赞、收藏和关注,点点关注不迷路,我们下期再见! 


http://www.hkcw.cn/article/PuBrfBlSUd.shtml

相关文章

ssm学习笔记(尚硅谷) day1

创建新项目 maven的聚合 1. 标记父类项目 标签<packaging>pom</packaging>表示将该项目标记为父类项目&#xff0c;必须添加。 以下是标签<packing>的常见取值 groupId在pom.xml中&#xff0c;可以从pom.xml直接修改。 2. 通过<modules>添加子项目…

数据库 | 时序数据库选型

选型目标 高性能与低延迟&#xff1a;满足高频率数据写入与即时查询的需求。资源效率&#xff1a;优化存储空间使用&#xff0c;减少计算资源消耗。可扩展架构&#xff1a;支持数据量增长带来的扩展需求&#xff0c;易于维护。社区活跃度&#xff1a;有活跃的开发者社区&#…

Linux | Shell脚本的基础知识

一. 定义 1.1 什么是shell脚本 shell脚本是一种可运行的文本shell脚本的内容是由逻辑和数据组成shell脚本是解释型语言 命令不可单独执行&#xff0c;由解释器将代码转换为系统指令&#xff0c;系统接受指令后执行速度比编译型语言慢&#xff0c;优点是简单&#xff0c;开发效…

Window Server 2019--09 路由和桥接的设置

本章要点 >>了解路由器工作原理。 >>掌握路由与远程访问服务的设置。 >>掌握桥接的设置。 路由器(Router)是网络中的核心设备&#xff0c;它工作在开放系统互连(Open SystemInter- connection&#xff0c;OSI)网络参考模型的网络层(第3层),用于连接多个在…

国芯思辰| 霍尔电流传感器AH811为蓄电池负载检测系统安全护航

在电动车、储能电站、不间断电源&#xff08;UPS&#xff09;等设备中&#xff0c;蓄电池作为关键的储能单元&#xff0c;其运行状态直接关系到设备的稳定性和使用寿命。而准确监测蓄电池的负载情况&#xff0c;是保障其安全、高效运行的关键。霍尔电流传感器 AH811凭借独特的技…

如何构建高效的接口自动化测试框架(全)

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 在选择接口测试自动化框架时&#xff0c;需要根据团队的技术栈和项目需求来综合考虑。对于测试团队来说&#xff0c;使用Python相关的测试框架更为便捷。无论选择…

Redis Stack常见拓展

Redis JSON RedisJSON 是 Redis Stack 提供的模块之一&#xff0c;允许你以 原生 JSON 格式 存储、检索和修改数据。相比传统 Redis Hash&#xff0c;它更适合结构化文档型数据&#xff0c;并支持嵌套结构、高效查询和部分更新。 #设置⼀个JSON数据,其中$表示JSON数据的根节点…

Java AQS(Abstract Queued Synchronized)深度解析

一、AQS概述 AQS是Java并发包中的核心框架&#xff0c;为构建锁和同步器提供了基础实现。它是JUC&#xff08;java.util.concurrent&#xff09;包中大多数同步类的基石&#xff0c;如ReentrantLock、Semaphore、CountDownLatch等都基于AQS实现。 1.1 AQS核心思想 AQS的核心…

建筑节能要求趋严,楼宇自控技术独特优势愈发清晰可辨

在全球应对气候变化、积极推进 “双碳” 目标的大背景下&#xff0c;建筑行业作为能源消耗的 “大户”&#xff0c;面临着日益严苛的节能要求。从国家相继出台的建筑节能设计标准&#xff0c;到地方推行的能耗限额管理政策&#xff0c;都在倒逼建筑行业探索更高效的节能路径。传…

TCP连接关闭过程的技术解析:从四次挥手到资源释放

一、引言 TCP&#xff08;传输控制协议&#xff09;作为面向连接的可靠传输协议&#xff0c;其连接的建立与终止过程均需严格遵循规范。本文基于实际抓包数据&#xff0c;深入分析客户端与服务端在数据传输后的连接关闭过程&#xff0c;聚焦四次挥手&#xff08;Four-Way Hand…

人工智能浪潮下,制造企业如何借力DeepSeek实现数字化转型?

一、DeepSeek技术概述 DeepSeek&#xff0c;凭借其强大的深度学习和自然语言处理能力&#xff0c;能够理解复杂问题并提供精准解决方案。它不仅能够作为学习、工作、生活的助手&#xff0c;满足用户在不同场景下的需求&#xff0c;更能在制造业中发挥重要作用。通过自然语言交…

知识隔离的视觉-语言-动作模型:训练更快、运行更快、泛化更好

25年5月来自PI的论文“Knowledge Insulating Vision-Language-Action Models: Train Fast, Run Fast, Generalize Better”。 视觉-语言-动作 (VLA) 模型通过将端到端学习与来自网络规模视觉-语言模型 (VLM) 训练的语义知识迁移相结合&#xff0c;为机器人等物理系统训练控制策…

Java实现命令行图书管理系统(附完整源码)

一、项目概述 本文将介绍如何使用Java实现一个基于命令行的图书管理系统。系统支持管理员和普通用户两种角色&#xff0c;提供图书的增删改查、借阅归还等功能。项目采用面向对象设计原则&#xff0c;代码结构清晰&#xff0c;适合Java初学者学习。 二、系统功能架构 graph T…

pyinstaller 使用 控制台闪退解决办法

pyinstaller --noconfirm --clean websoket.py --onefile pip install pyinstaller py地址不要带中文 install时的python版本要和文件的环境python版本一样 if __name__ "__main__": print("Starting WebSocket server at ws://0.0.0.0:5000/ws") p…

首发!PPIO派欧云上线DeepSeek-R1-0528-Qwen3-8B蒸馏模型

首发&#xff01;PPIO派欧云上线DeepSeek-R1-0528-Qwen3-8B蒸馏模型 DeepSeek R1 系列的模型更新还在继续。 继昨天 PPIO派欧云首发上线 DeepSeek-R1-0528 模型后&#xff0c;今天 PPIO 再次首发 DeepSeek 最新开源的蒸馏模型 DeepSeek-R1-0528-Qwen3-8B。 DeepSeek-R1-0528-Q…

DAY 10 机器学习建模与评估

把之前学到的对数据的处理方法都用一遍&#xff0c;以后直接使用处理好的数据。 开始机器学习建模&#xff08;简单建模&#xff0c;不涉及调参&#xff09;和评估。 一、总体流程 导库读取数据查看数据信息--理解数据补全缺失值处理异常值离散值处理删除无用列划分数据集特…

【Oracle】函数大全

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. Oracle函数概述1.1 函数的基本特点 2. 字符串函数2.1 基础字符串操作LENGTH 和 LENGTHBUPPER、LOWER、INITCAP 2.2 字符串截取和查找SUBSTR 和 SUBSTRBINSTR 和 INSTRB 2.3 字符串连接和替换CONCAT 和 ||REP…

基于Role实现LNMP[M]

1. role的简介 在 Ansible 中&#xff0c;role&#xff08;角色 &#xff09;是自 1.2 版本引入的特性 &#xff0c;用于层次性、结构化地组织 playbook。它本质上是一种特殊方法&#xff0c;将原本集中在一个 YAML 文件里的内容&#xff0c;按规则分散并封装到不同目录下&…

科学智能赋能空间科学研究(1):中国空间站空间科学实验的数据生态构建

中国科学院空间应用工程与技术中心在空间科学实验领域的研究覆盖了多模态空间科学实验数据模式挖掘、领域知识抽取、跨学科知识融合与认知智能等研究内容&#xff0c;有效促进了空间科学实验领域的数据应用生态的体系化建设&#xff0c;相关研究成果已正式发表于权威学术期刊《…

RabbitMQ集群与负载均衡实战指南

文章目录 集群架构概述仲裁队列的使用1. 使用Spring框架代码创建2. 使用amqp-client创建3. 使用管理平台创建 负载均衡引入HAProxy 负载均衡&#xff1a;使用方法1. 修改配置文件2. 声明队列 test_cluster3. 发送消息 集群架构 概述 RabbitMQ支持部署多个结点&#xff0c;每个…