【动态规划-矩阵】5.下降路径最小和

ops/2025/1/15 11:28:50/

题目

难度: 中等
题目内容:
给你一个 n x n 的 方形 整数数组 matrix ,请你找出并返回通过 matrix 的下降路径 的 最小和 。

下降路径 可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列(即位于正下方或者沿对角线向左或者向右的第一个元素)。具体来说,位置 (row, col) 的下一个元素应当是 (row + 1, col - 1)、(row + 1, col) 或者 (row + 1, col + 1) 。
示例1:
在这里插入图片描述
输入:matrix = [[2,1,3],[6,5,4],[7,8,9]]
输出:13
解释:如图所示,为和最小的两条下降路径

示例2:
在这里插入图片描述
输入:matrix = [[-19,57],[-40,-5]]
输出:-59
解释:如图所示,为和最小的下降路径

前置思路

该题的思路与上题几乎是完全一样的,只不过路径的选择加了一种,本质是一样的,且本题为矩阵,因此上下通路的复杂度应该是一样的。这里还是采用和上题一样的代码逻辑。

代码

class Solution:def minFallingPathSum(self, matrix: List[List[int]]) -> int:for i in range(1, len(matrix)):for j in range(len(matrix[i])):# 三种情况,两个边界+非边界if j == 0:matrix[i][j] += min(matrix[i - 1][j], matrix[i - 1][j + 1])elif j == len(matrix[i]) - 1:matrix[i][j] += min(matrix[i - 1][j], matrix[i - 1][j - 1])else:matrix[i][j] += min(matrix[i - 1][j], matrix[i - 1][j - 1], matrix[i - 1][j + 1])return min(matrix[-1])

大神解

class Solution:def minFallingPathSum(self, matrix: List[List[int]]) -> int:n = len(matrix)# 存储结果f = [inf] + matrix[0] + [inf]# 从第二行开始遍历for i in range(1, n):# tmp用于记录上一行i-1的最小路径和tmp = inf# 依次更新每个位置的最小值for j in range(1, n+1):tmp ,f[j] = f[j], min(tmp, f[j], f[j+1]) + matrix[i][j-1]return min(f)

fine,总有更简单的方法,这里把判断条件都省了,但我感觉差不多,还是上面的代码更容易理解。

思考

莫得思考,个人感觉理解思路即可。


http://www.ppmy.cn/ops/150271.html

相关文章

web.xml常用配置

web.xml是Java Web应用程序的部署描述文件,它位于WEB-INF目录下。web.xml文件主要用于配置Servlet、Filter、Listener、MIME类型、欢迎页面等组件,以及一些Web应用的上下文参数。以下是一些常见的web.xml配置说明: Servlet配置: …

Golang——GPM调度器

本文详细介绍Golang的GPM调度器,包括底层源码及其实现,以及一些相关的补充知识。 文章目录 前情提要并发与并行并行 (Parallel)并发 (Concurrency)关键区别 进程和线程的区别协程解决的问题协程的优势 Go的并发模型-CSPGo的调度模型-GPM源码Goroutineg 结…

开发人员学习书籍推荐(C#、Python方向)

作为一名开发人员,持续学习和提升自己的技术水平是至关重要的。如今,技术不断更新换代,新的开发框架、语言和工具层出不穷。对于刚入行的开发者或希望深入某一领域的工程师来说,选对书籍是学习的捷径之一。本篇文章将推荐一些经典…

C#调用MyLibxl来生成EXCEL的订货清单

在进销存里,基本上都有销售订单, 而这些订单的格式更是五花八门的。 一般情况用EXCEL的文件就可以表达出来,然后再通过打印EXCEL文件,就完成了整个订单的生成了。 下面就来生成如下面所示的销售收据: 接着需要编写下面这段代码: using MyLibxl; using MyLib.Libxl; u…

Apache Hop从入门到精通 第三课 Apache Hop下载安装

1、下载 官方下载地址:https://hop.apache.org/download/,本教程是基于apache-hop-client-2.11.0.zip进行解压,需要jdk17,小伙伴们可以根据自己的需求下载相应的版本。如下图所示 2、下载jdk17(https://www.microsoft…

移动云自研云原生数据库入围国采!

近日,中央国家机关2024年度事务型数据库软件框架协议联合征集采购项目产品名单正式公布,移动云自主研发的云原生数据库产品顺利入围。这一成就不仅彰显了移动云在数据库领域深耕多年造就的领先技术优势,更标志着国家权威评审机构对移动云在数…

【微服务】SpringBoot 自定义消息转换器使用详解

目录 一、前言 二、SpringBoot 内容协商介绍 2.1 什么是内容协商 2.2 内容协商机制深入理解 2.2.1 内容协商产生的场景 2.3 内容协商实现的常用方式 2.3.1 前置准备 2.3.2 通过HTTP请求头 2.3.2.1 操作示例 2.3.3 通过请求参数 三、SpringBoot 消息转换器介绍 3.1 H…

python 爬虫自动获取 GB/T 7714 引用格式

python 自动获取 GB/T 7714 引用格式 参考:python爬虫实现自动获取论文GB 7714引用 介绍:从 Google Scholar 网站(具体为 https://xueshu.aigrogu.com/)收集文章信息,包括文章标题、链接和 GB/T 7714 引用格式。该代码…