题目:biubiu
题意:一个矩阵,需要从左上的点到达右下的最后一点,只能往右或往下走,每个矩阵都有一个权值,要求在到达这个矩阵的时候,生命值必须大于0,问初始值最小。
到达矩阵的某个点时我们要求他的生命值必须大于0,在满足这个前提下,到达这个点有两个路经,因为矩阵拥有权值,那么在达到这个点时他就拥有两种生命值,他的初始值肯定也是不同,而我们需要的是最小的初始值,但是如果只观察此刻的初始值,而不考虑他的生命值,那到终点时的结果是否是最优结果呢?因为此时的生命值是对后面的有影响的,在考虑这两点的要求下,如何获得最优解。
为了减少当前的生命值对后续路经的影响,我们可以反着考虑,我们从右下往左上遍历,我们就不需要考虑生命值的影响,因为我们反着遍历就保证了之前的路经都是满足条件可以到达的,我们只需要考虑初值最小即可,即倒叙dp。

class Solution {public:int calculateMinimumHP(vector<vector<int>>& dungeon) {int n=dungeon.size(),m=dungeon[0].size();vector<vector<int>>dp(n+1,vector<int>(m+1,INT_MAX));dp[n-1][m]=dp[n][m-1]=1;//将终点的下一步初始化为1,那么就保证了终点是可以到达的for(int j=m-1;j>=0;j--){for(int i=n-1;i>=0;i--){int minn=min(dp[i+1][j],dp[i][j+1]);dp[i][j]=max(1,minn-dungeon[i][j]);}}return dp[0][0];}
};

大佬的分析思路:biubiu

力扣174.地下城游戏相关推荐

  1. 力扣174. 地下城游戏

    力扣174. 地下城游戏 文章目录 力扣174. 地下城游戏 一.题目描述 二.分析 三.完整代码 一.题目描述 二.分析 这个题一看就可以用动态规划,就需要确定动态规划的状态和选择以及状态转移方程 ...

  2. 力扣——174.地下城游戏(困难难度)——万能的递归与动态分析

    力扣--174. 地下城游戏 一.算法目录合集 1.地址 2.说明 二.题目说明 1.题干 2.原地址 三.实现步骤 1.思路分析 1.1.分析问题 1.2.具体步骤 ① 特殊情况分析 ② 常规分析 ...

  3. 力扣 -- 174. 地下城游戏

    题目链接:174. 地下城游戏 - 力扣(LeetCode) 下面是用动态规划的思想解决这道题的过程,相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴. 参考代码: class Solution { ...

  4. 力扣 174. 地下城游戏 DFS + Python

    原题链接: 力扣 备注:最初做本题目是用的动态规划:在做了一些DFS题目之后,发现本题也可以用DFS来做. 一 特别注意 1. 需要特别注意:假设初始时刻的健康点数为Init,那么在进行下一步搜索之前 ...

  5. 力扣LeetCode174.地下城游戏及Python源码实现

    本题为LeetCode题库中第174题地下城游戏,难度困难,题目请参考这里. 一道比较困难DP题目,其中的难点在于如何定义状态转移方程,所以在这里记录一下.这道题刚开始做一点思路都没有,但是通过解读别 ...

  6. [力扣题解] 174. 地下城游戏 DP

    一.题目详情 原题链接:174. 地下城游戏 一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格.我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿 ...

  7. 174.地下城游戏(难)

    目录 一.题目 二.分析+代码 方法一:先初始化最后一列和最后一行 方法二:多加一行和一列 一.题目 174. 地下城游戏 - 力扣(LeetCode) 二.分析+代码 方法一:先初始化最后一列和最后 ...

  8. LeetCode 174. 地下城游戏 | Python

    文章目录 174. 地下城游戏 题目 解题思路 代码实现 实现结果 欢迎关注 174. 地下城游戏 题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/ ...

  9. 174. 地下城游戏 逆向dp

    174. 地下城游戏 // // // 一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格.我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿 // ...

最新文章

  1. php通知前端,HTML5桌面通知提示功能的实现
  2. 【经典课程】李宏毅机器学习2020版正式上线!!!
  3. 基于耳-脑电图的脑机接口研究进展
  4. 【NOIP2013模拟9.29】密码
  5. @EnableDiscoveryClient和@EnableEurekaClient的区别
  6. SQL2005利用ROW_NUMER实现分页的两种常用方式
  7. 非专业计算机考试基础内容,全国高等教育自学考试指定教材:计算机应用基础·非计算机专业公共基础科·代码00018...
  8. 微软开源P语言,实现安全的异步事件驱动编程
  9. Qt总结之六:QPaintEvent绘制雷达图
  10. 铺地毯(luogu 1003)
  11. php三元运算符应用举例,php – 使用嵌套三元运算符
  12. 取汉字拼音首字母的方法
  13. 用c语言编写屏幕保护程序,用C语言编写屏幕保护程序.doc
  14. 山东济南ISO9001认证|ISO14001认证|ISO45001认证|ISO三体系认证的流程
  15. 为Ubuntu安装中文语言包
  16. mac u盘重装系统(monterey)
  17. Pm2 部署 Nuxt 项目
  18. 201919102004张雪婷(第四次作业)
  19. CentOS 7.9 安装NVIDIA 显卡驱动
  20. 运动世界校园 校园跑 不想跑步人的福利

热门文章

  1. 基于 Cookie 的 SSO 中间件 kisso
  2. 【SEO】什么是域名泛解析?
  3. Android 键盘弹出监听
  4. 公众号ChatGPT历史对话记录查看升级完成啦
  5. 2020-11-02 oracle sql listagg函数使用
  6. java-net-php-python-ssm大学生交互自助平台查重PPT计算机毕业设计程序
  7. 常见vue、js,webpack面试题
  8. 手机连上wifi却上不了网的原因
  9. 对话陈炎:帆软的“少年感”从何而来?
  10. 快速掌握 Go 语言中的集合(map)