这里写目录标题

  • 题目
  • 解题
    • 方法一:动态规划

题目

题目连接
一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。

骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。

有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为 0),要么包含增加骑士健康点数的魔法球(若房间里的值为正整数,则表示骑士将增加健康点数)。

为了尽快到达公主,骑士决定每次只向右或向下移动一步。

编写一个函数来计算确保骑士能够拯救到公主所需的最低初始健康点数。

例如,考虑到如下布局的地下城,如果骑士遵循最佳路径 右 -> 右 -> 下 -> 下,则骑士的初始健康点数至少为 7。

解题

方法一:动态规划

参考链接
dp[i][j]:表示在i,j处所需的最低健康数
从右下角至左上角遍历

每个位置要维持的健康数要大于1.

class Solution {public:int calculateMinimumHP(vector<vector<int>>& dungeon) {int m=dungeon.size(),n=dungeon[0].size();vector<vector<int>> dp(m+1,vector<int>(n+1,INT_MAX));dp[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]=max(min(dp[i+1][j],dp[i][j+1])-dungeon[i][j],1);}}return dp[0][0];}
};

leetcode-174:地下城游戏相关推荐

  1. LeetCode 174.地下城游戏

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

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

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

  3. Java实现 LeetCode 174 地下城游戏

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

  4. LeetCode 174. 地下城游戏(DP)

    文章目录 1. 题目 2. 解题 1. 题目 一些坏人抓住了公主(P)并将她关在了地下城的右下角. 地下城是由 M x N 个房间组成的二维网格. 我们英勇的骑士(K)最初被安置在左上角的房间里, 他 ...

  5. 【Java】LeetCode 174. 地下城游戏 —— 困难

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

  6. [C++] LeetCode 174. 地下城游戏

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

  7. 每日题解:LeetCode 174. 地下城游戏

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

  8. [leetcode]174. 地下城游戏

    写了半天从[0][0]开始的,代码有90多行,就过了一个样例..看了题解,原来只能倒着来..额额 1.题解里写得最简洁的: https://leetcode-cn.com/problems/dunge ...

  9. leetcode 174:地下城游戏

    [分析]这道题一看就是动态规划,最开始从左上角往右下走,每次判断右侧和下侧哪个数大就走哪个方向,但是这样想的话就会有一个问题,就是我们需要判断每次到达一个房间后,我们的血量不能是负数.而问题的关键是骑 ...

  10. LeetCode 174. 地下城游戏

    题目链接: 力扣https://leetcode-cn.com/problems/dungeon-game/ [分析]一看向下和向右走,第一反应肯定是dp了.但是如果从左上角开始dp的话,加血会影响我 ...

最新文章

  1. Hive SQL 监控系统 - Hive Falcon
  2. unity如何停止不用字符串方式开启协程的方法
  3. Shuttle ESB实现消息推送
  4. OpenGL学习笔记:模型变换、视图变换、投影变换 、视口变换、操作矩阵堆栈
  5. C++ Qt 访问权限总结
  6. mysql 日期_「13」MySQL中与日期与时间相关的函数
  7. 为什么谷歌要执行严格的代码编写规范?
  8. 个人游戏程序开发总结
  9. 汽车销售管理系统前景与范围文档
  10. O2O两种典型运作模式结合案例分析
  11. GUI与CUI程序区别
  12. python熊猫入门
  13. 清华梦的粉碎—写给清华大学的退学申请 2005.9.22
  14. 华为认证是自学还是报班合适
  15. 股票软件定制将成为券商下一个核心竞争力
  16. ceph v15.2.13版本[octopus]分布式集群部署
  17. 聊聊 Bladed 软件
  18. his系统冗灾服务器,江苏南京-医疗HIS系统存储解决方案
  19. kali下有哪些代理工具?又有什么用呢?
  20. 新斗罗大陆原来的服务器找不到了,星灵大陆 —— 一个最大还原了斗罗大陆的服务器丨三年老服丨新服归来...

热门文章

  1. Android之——获取进程总数、内存、任务列表
  2. php万圣节源码,【万圣创意】巴迪一家的万圣节
  3. linux驱动之设备模型
  4. Centos LNMP 一键安装教程
  5. Android部分流海屏判断方法
  6. android 2g内存,追求极致流畅体验 2G内存安卓手机推荐
  7. [python]阿里云和官方源不好使切换豆瓣源解决问题
  8. 将matlab中数据保存为txt或dat格式
  9. 关于移动互联网下机场APP的一些思考
  10. HTML用div做食逗人,CSS3 吃豆人