动态规划 —— 路径问题-地下城游戏
1. 地下城游戏
题目链接:
174. 地下城游戏 - 力扣(LeetCode)
https://leetcode.cn/problems/dungeon-game/description/

2. 算法原理
状态表示:以莫一个位置位置为结尾或者以莫一个位置为起点
dp[i,j]表示:到达[i,j]位置的时候,骑士所需要的最低初始健康点数(X),这个状态表示是错误的,因为如果是以莫一个位置为结尾来推导的话我们会发现我们正向推导的时候是不断的修改我们之前的状态,无法得到一个准确的状态
所以本题应该以莫一个位置为起点来开始推断:从[i,j]位置出发,到达终点,dp[i,j]里面存储的值就是所需的最低初始健康点数
2. 状态转移方程
根据最近的一步来划分问题:
到达dp[i][j]有两种情况:
1. 往右边走:dp[i,j+1] - d[i][j]
2. 往下走:dp[i+1,j] - d[i][j]
本题的状态转移方程是:dp[i][j] = min(dp[i,j+1] ,dp[i+1,j]) - d[i][j]
因为最低健康点数还有可能为负数,那么我们还需要对它进行一次比对:
dp[i][j] =max(1,dp[i][j] ) 如果为负数则返回1,否则不变
3. 初始化 :把dp表填满不越界,让后面的填表可以顺利进行
本题状态依赖的是下面和右边的状态,所以会越界的位置是下面的一行和右边的一列,那么我们可以在下面的一行和右边的一列再额外的加上一行和一列的虚拟节点
因为是在下面的一行和右边的一列加上了虚拟节点,所以不用考虑下标的映射关系,只需要保证后面的填表是正确的
当解救完公主之后走到下面或者右边的时候,最少要剩下1滴健康点数,其余虚拟节点的值是取最小的值,为了防止影响到最终结果,所以我们将其初始化为正无穷大
4. 填表顺序
本题的填表顺序是:从下往上填写每一行,每一行的值是从右往左
5. 返回值 :题目要求 + 状态表示
本题的返回值是:dp[0][0]
3.代码
动态规划的固定四步骤:1. 创建一个dp表
2. 在填表之前初始化
3. 填表(填表方法:状态转移方程)
4. 确定返回值
class Solution {
public:int calculateMinimumHP(vector<vector<int>>& d) {int m=d.size(),n=d[0].size();//创建dp表随便将虚拟节点全部初始化为正无穷大vector<vector<int>>dp(m+1,vector<int>(n+1,INT_MAX));//再将dp[m][n-1]和dp[m-1][n]初始化为1dp[m][n-1]=dp[m-1][n]=1;for(int i=m-1;i>=0;i--)for(int j=n-1;j>=0;j--){dp[i][j]=min(dp[i+1][j],dp[i][j+1])-d[i][j];dp[i][j]=max(1,dp[i][j]);}return dp[0][0];}
};
感谢观看~
相关文章:
动态规划 —— 路径问题-地下城游戏
1. 地下城游戏 题目链接: 174. 地下城游戏 - 力扣(LeetCode)https://leetcode.cn/problems/dungeon-game/description/ 2. 算法原理 状态表示:以莫一个位置位置为结尾或者以莫一个位置为起点 dp[i,j]表示:…...
沈阳乐晟睿浩科技有限公司抖音小店短视频时代的电商蓝海
在数字化浪潮席卷全球的今天,电子商务以其独特的魅力和无限的潜力,成为了推动经济发展的新引擎。作为这一领域的佼佼者,沈阳乐晟睿浩科技有限公司凭借其深厚的行业积淀与创新精神,正逐步成为众多商家在抖音小店平台上腾飞的强大助…...
ubuntu20.04安装ros与rosdep
目录 前置配置 配置apt清华源 配置ros软件源 添加ros安装源(中科大软件源) 设置秘钥 更新源 ros安装 安装ros 初始化 rosdep 更新 rosdep 设置环境变量 安装 rosinstall 安装验证 启动海龟仿真器 操控海龟仿真器 rosdep安装更新 安装 使用…...
推理加速papers
《A Survey on Efficient Inference for Large Language Models》2024-07 1. Q、K、V的计算,都是矩阵乘法; 2. prefilling阶段,每次计算,Q是N个向量一起;decoding阶段,每次计算,Q是1个向量计算&…...
【02基础】- RabbitMQ基础
目录 2- RabbitMQ2-1 介绍和安装安装 2-2 RabbitMQ 快速入门2-3 RabbitMQ 数据隔离 3- Java客户端3-1 快速入门AMQP快速入门📑小结:SpringAMQP如何收发消息? 3-2 WorkQueues 任务模型案例-使用 WorkQueue 单队列绑定多消费者📑小结…...
vue3中跨层传递provide、inject
前置说明 在 Vue 3 中,provide 和 inject 是一对用于跨组件树传递数据的 API。它们允许你在祖先组件中使用 provide 提供数据或服务,然后在后代组件中使用 inject 来获取这些数据或服务。这种方式特别适用于跨多个层级的组件传递数据,而不需要…...
Nacos-1.4.6升级2.3.2
一、nacos-2.3.2部署(非升级测试步骤) 1、使用nginx进行代理 # nginx-1.25.5 docker run -d --name nginx-nacos --network nacos --privilegedtrue -v /data/nacos/nginx.conf:/etc/nginx/conf.d/default.conf -p 8848:8848 nginx:latest2、创建nacos服务 # nacos-2.3.2 do…...
东识集中文印管理系统|DW-S408系统的主要功能
集中文印管理系统以涉密文件集中管理为目标,实现办公文件汇总、打印信息生成、文件打印、文件追溯等功能,将用户与打印设备分离,有效防止纸媒泄密。 集中文印管理系统是由客户端和服务端两部分构成,客户端能够将打印文件上传至服…...
text-foreground讲解
1、fore单词讲解 fore 是 “forward” 或 “front” 的简写,意思是"前面的"、“前景的”。 一些常见的相关英文词: foreground fore ground,意思是"前景" background back ground,意思是"背景&qu…...
数字IC后端实现之Innovus Place跑完density爆涨案例分析
下图所示为咱们社区a7core后端训练营学员的floorplan。 数字IC后端实现 | Innovus各个阶段常用命令汇总 该学员跑placement前density是59.467%,但跑完place后density飙升到87.68%。 仔细查看place过程中的log就可以发现Density一路飙升! 数字IC后端物…...
【牛客刷题实战】二叉树遍历
大家好,我是小卡皮巴拉 文章目录 目录 牛客题目: 二叉树遍历 题目描述 输入描述: 输出描述: 示例1 解题思路 问题理解 算法选择 具体思路 解题要点 完整代码(C语言) 兄弟们共勉 !&…...
消息队列mq有哪些缺点?
大家好,我是锋哥。今天分享关于【消息队列mq有哪些缺点?】面试题?希望对大家有帮助; 消息队列mq有哪些缺点? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 消息队列(MQ)的缺点 消…...
【CENet】多模态情感分析的跨模态增强网络
在MSA领域,文本的准确度远远高于音频和视觉,如果文本能达到90%,那么音频和视觉的准确度只有60%~80%,但是过往研究很少针对情感分析的背景下去提高音频和视频的准确度。 abstract: 多模态情感分析(MSA&…...
动态代理:面向接口编程,屏蔽RPC处理过程
RPC远程调用 使用 RPC 时,一般的做法是先找服务提供方要接口,通过 Maven把接口依赖到项目中。在编写业务逻辑的时候,如果要调用提供方的接口,只需要通过依赖注入的方式把接口注入到项目中,然后在代码里面直接调用接口…...
HTTP 405 Method Not Allowed:解析与解决
HTTP 405 Method Not Allowed:解析与解决 引言 在Web开发中,HTTP状态码是服务器与客户端之间通信的重要组成部分。当我们使用Python进行网络请求时,经常会遇到各种HTTP状态码。其中,HTTP 405 “Method Not Allowed” 错误是一个…...
推荐一款CAD/CAM设计辅助工具:Mastercam
Mastercam是一款非常好用的软件,我们的这款软件是由美国CNC软件公司开发,集平面制图、三维设计、曲面设计、数 控编程、刀具处理等多项强大功能于一体。软件的使用过程具有非常直观的特点,用户可以很方便地对自己的作品进行设计。 Mastercam不…...
位运算刷题记录
1. 使两个整数相等的位更改次数 3226. 使两个整数相等的位更改次数 给你两个正整数 n 和 k。 你可以选择 n 的 二进制表示 中任意一个值为 1 的位,并将其改为 0。 返回使得 n 等于 k 所需要的更改次数。如果无法实现,返回 -1。 class Solution {pub…...
爬虫技术——小白入狱案例
知孤云出岫 目录 1. 案例概述2. 案例需求分析3. 实现步骤Step 1: 环境准备Step 2: 分析百度图片URL请求规律Step 3: 编写爬虫代码代码解析 4. 运行代码5. 注意事项6. 案例总结 要实现大批量爬取百度图片,可以使用Python编写一个网络爬虫,通过发送HTTP请求…...
vue 果蔬识别系统百度AI识别vue+springboot java开发、elementui+ echarts+ vant开发
编号:R03-果蔬识别系统 简介:vuespringboot百度AI实现的果蔬识别系统 版本:2025版 视频介绍: vuespringboot百度AI实现的果蔬识别系统前后端java开发,百度识别,带H5移动端,mysql数据库可视化 1 …...
全新更新!Fastreport.NET 2025.1版本发布,提升报告开发体验
在.NET 2025.1版本中,我们带来了巨大的期待功能,进一步简化了报告模板的开发过程。新功能包括通过添加链接报告页面、异步报告准备、HTML段落旋转、代码文本编辑器中的文本搜索、WebReport图像导出等,大幅提升用户体验。 FastReport .NET 是…...
【ZGC性能调优终极指南】:20年JVM专家亲授5大实战瓶颈突破法
第一章:ZGC核心机制与性能边界全景透视ZGC(Z Garbage Collector)是JDK 11引入的低延迟垃圾收集器,专为处理TB级堆内存与毫秒级停顿目标而设计。其核心突破在于并发标记、并发重定位与着色指针(Colored Pointers&#x…...
效率提升:基于快马平台实现openclaw windows部署的自动化与优化
最近在团队里负责优化openclaw在Windows环境的部署流程,发现传统手动部署方式存在不少效率瓶颈。经过在InsCode(快马)平台上的实践,我们实现了一套自动化部署方案,效果提升明显。这里分享几个关键优化点: 全流程一键化部署 过去部…...
Polars 2.0大规模清洗崩溃全解析:内存溢出、Schema冲突、LazyFrame中断——3类高频致命报错的5分钟修复方案
第一章:Polars 2.0大规模清洗崩溃全解析:内存溢出、Schema冲突、LazyFrame中断——3类高频致命报错的5分钟修复方案 当处理TB级结构化数据时,Polars 2.0的LazyFrame虽带来性能飞跃,却也因底层执行引擎变更放大了三类典型崩溃风险。…...
Tetrazine-amine HCl salt,CAS:1416711-59-5,四嗪-氨基盐酸盐的描述
Tetrazine-amine HCl salt(四嗪-氨基盐酸盐)是一种结合了四嗪基团和氨基盐酸盐结构的化合物,在化学、生物医药和材料科学等领域具有广泛应用。一、基本信息中文名称:四嗪-氨基盐酸盐英文名称:Tetrazine-amine HCl salt…...
Phi-4-mini-reasoning企业级落地:金融风控规则推理引擎构建案例
Phi-4-mini-reasoning企业级落地:金融风控规则推理引擎构建案例 1. 项目背景与模型介绍 在金融风控领域,规则推理引擎是核心决策系统的重要组成部分。传统规则引擎往往面临维护成本高、灵活性差、难以应对复杂场景等问题。Phi-4-mini-reasoning作为一款…...
高效获取B站视频:downkyi开源工具全方位使用指南
高效获取B站视频:downkyi开源工具全方位使用指南 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等)…...
Linux 内核遍历宏介绍
Linux内核中的遍历宏全面详解 Linux内核中大量使用遍历宏(Iteration Macros)来简化数据结构的遍历操作。这些宏提供了类型安全、简洁且高效的遍历方式,是内核编程的核心范式之一。一、遍历宏的分类 1.1 按功能分类 Linux内核遍历宏 ├── 链…...
饭局下半场,别人忙着解酒,我从开局就赢在酒杯里
1. 饭局如战场,后半场才是真正的考验任何一场饭局,都可以被分成两个阶段。前半场,推杯换盏,人人意气风发。酒过三巡,大家还在比拼谁喝得多、谁喝得猛,气氛热烈而体面。但到了后半场,画风开始分裂…...
Pixel Language Portal效果展示:多轮对话上下文跨语种一致性保持
Pixel Language Portal效果展示:多轮对话上下文跨语种一致性保持 1. 产品概览 **像素语言跨维传送门(Pixel Language Portal)**是一款突破性的多语言交互工具,基于腾讯Hunyuan-MT-7B核心引擎构建。不同于传统翻译工具的机械感,它将语言转换…...
手把手教程:在CSDN星图一键部署LFM2.5轻量模型,低配电脑也能跑AI
手把手教程:在CSDN星图一键部署LFM2.5轻量模型,低配电脑也能跑AI 还在为本地跑不动大模型而烦恼吗?今天我要分享一个好消息:即使你的电脑配置不高,也能轻松部署一个实用的AI文本生成模型。LFM2.5-1.2B-Thinking-GGUF就…...


