[leetcode]64_最小路径和

给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
说明:每次只能向下或者向右移动一步示例 1:
1 3 1
1 5 1
4 2 1
输入:grid = [[1,3,1],[1,5,1],[4,2,1]]
输出:7
解释:因为路径 1→3→1→1→1 的总和最小。
示例 2:
输入:grid = [[1,2,3],[4,5,6]]
输出:12提示:
m == grid.length
n == grid[i].length
1 <= m, n <= 200
0 <= grid[i][j] <= 200

解题方法:【动态规划】

二维数组:n * m
递推公式:
dp[i][j]表示从"Start"走到(i,j)位置的最小路径和
dp[i][j] = min(dp[i - 1][j] + grid[i][j], dp[i][j - 1] + grid[i][j])
初始化:
dp[0][0] = grid[0][0]
第一行元素的最小路径和,为从左到右元素和
for i in range(1, n):dp[0][i] = dp[0][i - 1] + grid[0][i]
第一列元素的最小路径和,为从上到下元素和
for j in range(1, m):dp[j][0] = dp[j - 1][0] + grid[j][0]

class Solution:def different_roads(self, graph):#   行数row_number = len(nums)#   列数column_number = len(graph[0]) if graph[0] else 0  #   默认输入每行的列数都相同for row in graph:if not row:continuecolumn_number = max(column_number, len(row))    #   每行的列数不同,统计最大的列数dp = [[0]* column_number for _ in range(row_number)]dp[0][0] = graph[0][0]#   初始化首行for i in range(1, column_number):dp[0][i] = dp[0][i -1] + graph[0][i]#   初始化首列for j in range(row_number):dp[j][0] = dp[j - 1][0] + graph[j][0]#   递推公式for i in range(1, row_number):for j in range(1, column_number):dp[i][j] = min(dp[i - 1][j] + graph[i][j], dp[i][j - 1] + graph[i][j])return dp[row_number - 1][column_number - 1]if __name__ == '__main__':try:nums = eval(input())solution = Solution()result = solution.different_roads(nums)print(result)except Exception as e:print(e)

仅作为代码记录,方便自学自查自纠

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/880265.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 MyBatis 进行批量更新

引言 在企业级应用中&#xff0c;批量操作数据库是非常常见的需求。MyBatis 是一个优秀的持久层框架&#xff0c;它提供了灵活的方式来执行批量更新操作。本文将详细介绍如何使用 MyBatis 的 XML 配置进行批量更新。 环境准备 1. 添加依赖 首先&#xff0c;在 pom.xml 文件…

竹云赋能“中国·贵州”全省统一移动应用平台建设,打造政务服务“新引擎”

近日&#xff0c;2024中国国际大数据产业博览会在贵州贵阳圆满落幕。会上&#xff0c;由贵州省政府办公厅牵头建设的“中国贵州”全省统一移动应用平台正式发布&#xff0c;聚焦民生办事、政务公开、政民互动、扁平高效、数据赋能五大模块&#xff0c;旨在打造公平普惠的服务平…

建造者模式__c#

目录 调用 指挥者 抽象建造者 建造者 定义具体产品 调用 用指挥者指挥建造者建造产品 在指挥者这里组装成产品 namespace _建造者模式 {internal class Program{static void Main(string[] args){Builder buildernew JiangHuaiBuilder();//建造者Director director new…

【2020工业图像异常检测文献】PaDiM

PaDiM: a Patch Distribution Modeling Framework for Anomaly Detection and Localization 1、Background 在单类学习&#xff08;仅使用正常数据&#xff08;即“单一类”&#xff09;来训练模型&#xff09;环境中的异常检测和定位任务方法中&#xff0c;要么需要深度神经网…

RTOS基础知识笔记

RTOS RTOS属于操作系统&#xff08;OS&#xff09; 软件和硬件之间的桥梁&#xff0c; 本质 专用设备&#xff1a;C51单片机、STM32、嵌入式 OS&#xff1a;硬件驱动&#xff08;内存管理、GPIO、Timer&#xff09; 应用&#xff1a;直接调用驱动&#xff0c;开发应用逻辑…

研究生三年概括

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、研一1.上学期2. 下学期 二、研二1.研二上2.研二下 三、研三1.研三上2.研三下 前言 不知道是谁说的了&#xff0c;人生的路很长&#xff0c;关键的就那么几…

ubuntu 安装minikube,并拉取k8s镜像

虚拟机是vmware17, 系统是ubuntu20.4&#xff0c; minikube是1.23.1&#xff0c; docker是24.0.7&#xff0c; 为什么要装minikube&#xff0c;通常k8s集群是要3台机子以上&#xff0c;而通过minikube&#xff0c;可以在一台机子上搭建出k8s集群&#xff0c;minikube采用的是D…

【深入学习Redis丨第六篇】Redis哨兵模式与操作详解

〇、前言 哨兵是一个分布式系统&#xff0c;你可以在一个架构中运行多个哨兵进程&#xff0c;这些进程使用流言协议来接收关于Master主服务器是否下线的信息&#xff0c;并使用投票协议来决定是否执行自动故障迁移&#xff0c;以及选择哪个Slave作为新的Master。 文章目录 〇、…

车辆合格证识别接口-汽车管理智能化-python示例

随着汽车行业的蓬勃发展和数字化进程的加快&#xff0c;如何高效、准确地管理车辆信息成为众多企业面临的重要挑战。新车合格证作为新车上牌、车辆注册和管理的重要凭证&#xff0c;其识别与录入的准确性直接关系到业务流程的顺畅。新车合格证识别接口应运而生&#xff0c;为汽…

【环境踩坑系列】centos7安装python3.10.X

前言 虽然centOS8已经发布了相当一段时间了&#xff0c;但是基于稳定性、成熟的社区等原因&#xff0c;大家在选择centOS作为服务器操作系统的时候仍然会选择centOS7作为首选。但是centOS7自带的是python2.7.5&#xff0c;当前大量的python程序要用到的又是python3&#xff0c…

基于SSM的“银发在线教育云平台”的设计与实现(源码+数据库+文档)

基于SSM的“银发在线教育云平台”的设计与实现&#xff08;源码数据库文档) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 首页页面图 健身养生详情页面 在线课堂界面 …

RocketMQ实战与集群架构详解

目录 一、MQ简介 MQ的作用主要有以下三个方面 二、RocketMQ产品特点 1、RocketMQ介绍 2、RocketMQ特点 三、RocketMQ实战 1、快速搭建RocketMQ服务 2、快速实现消息收发 1. 命令行快速实现消息收发 2. 搭建Maven客户端项目 3、搭建RocketMQ可视化管理服务 4、升级分…

ubuntu安装libtorch

Ubuntu20.04安装libtorch 〇、前期准备1、查看NVIDIA显卡算力和CUDA版本支持的算力2、查看CUDA与显卡驱动的版本对应 一、NVIDIA显卡驱动安装1、下载显卡驱动2、安装驱动A. 安装依赖B. 禁用nouveau驱动C. 显卡驱动安装 3、参考 二、CUDA安装1、下载安装CUDA2、测试CUDA是否安装…

大语言模型-教育方向数据集

大语言模型-教育方向数据集 编号论文数据集1Bitew S K, Hadifar A, Sterckx L, et al. Learning to Reuse Distractors to Support Multiple-Choice Question Generation in Education[J]. IEEE Transactions on Learning Technologies, 2022, 17: 375-390.Televic, NL, https…

双向链表的基本结构及功能实现

1.基本结构: 双向链表是一种链表数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含三个部分&#xff1a; (1).数据域&#xff1a;存储节点的数据 (2).前驱指针:指向前一个节点 (3).后驱指针:指向下一个节点 2.基本特性&#xff1a; 双向链接: 与单向链表…

连锁多门店收银系统源码

近年来&#xff0c;越来越多的零售行业从业者意识到&#xff0c;线下线上全渠道整合将成为国内消费市场的大趋势&#xff0c;其中&#xff0c;线下门店能够赋予品牌发展的价值依然不可小觑。 1. 线下连锁门店发展方向&#xff0c;多种经营模式 新零售时代&#xff0c;基于品牌…

excel导出图片---HSSFWorkbook--SXSSFWorkbook

1 概述 平时在工作中&#xff0c;excel导出图片经常会用到&#xff0c;但奈何HSSFWorkbook导出数据数量有限制问题&#xff0c;所以企业里大多都用SXSSFWorkbook格式&#xff0c;很少用HSSFWorkbook。所以今天以这两种格式分别记录下&#xff0c;图片的导出过程。 2 HSSFWork…

Reddit账号太多?一文教你轻松管理

想要在Reddit上扩大品牌影响力&#xff0c;但不知道如何管理多个账号&#xff1f;面对复杂的社区规则&#xff0c;你是否在担心账号安全&#xff1f;渴望提升参与度&#xff0c;却对内容策略一筹莫展&#xff1f;本文将为你揭秘如何高效管理你的Reddit账号&#xff0c;让你在这…

mysql update语句会加什么锁

在 MySQL 中&#xff0c;UPDATE 语句会根据不同的存储引擎和隔离级别&#xff0c;自动获取不同的锁。下面是一些常见情况&#xff1a; InnoDB 存储引擎和默认隔离级别&#xff08;REPEATABLE READ&#xff09; 在 InnoDB 存储引擎和默认的 REPEATABLE READ 隔离级别下&#x…

PR快速片段分割教程

方法一&#xff1a; 方法二yyds&#xff1a; ctrla全选&#xff0c;拽过来ME导出即可。