地下城游戏

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

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

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

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

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

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

-2 (K) -3 3
-5 -10 1
10 30 -5 (P)

说明:

  • 骑士的健康点数没有上限。

  • 任何房间都可能对骑士的健康点数造成威胁,也可能增加骑士的健康点数,包括骑士进入的左上角房间以及公主被监禁的右下角房间。
class Solution:def calculateMinimumHP(self, dungeon: List[List[int]]) -> int:m = len(dungeon)n = len(dungeon[0])dp = [[float("inf")] * (n + 1) for _ in range(m + 1)]dp[m - 1][n] = 1dp[m][n - 1] = 1for i in range(m - 1, -1, -1):for j in range(n - 1, -1, -1):dp[i][j] = max(min(dp[i][j + 1], dp[i + 1][j]) - dungeon[i][j], 1)return dp[0][0]

(每日一练python)地下城游戏相关推荐

  1. [算法]LeetCode每日一题--174. 地下城游戏(Java)

    DailyChallenge 174. 地下城游戏 Hard20200712 Description 一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格. ...

  2. Python每日一练(20230510) 石子游戏 VII\VIII\IX

    目录 1. 石子游戏 Stone Game VII 2. 石子游戏 Stone Game VIII 3. 石子游戏 Stone Game IX

  3. PyGame每日一练——五子棋小游戏

    前言 PyGame 是一个专门设计来进行游戏开发设计的 Python 模块,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚,使用起来非常的简单,非常适合新手拿来玩耍,本教程源码均基于 ...

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

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

  5. (每日一练python)有效的数独

    有效的数独 请你判断一个 9x9 的数独是否有效.只需要 根据以下规则 ,验证已经填入的数字是否有效即可. 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 在 ...

  6. 【站内题解】十六道csdn每日一练Python题解

    文章目录 题目一: 游乐园的门票 1. 问题描述 2. 输入描述 3. 输出描述 4. 示例 4.1 输入 4.2 输出 5. 答案 5.1 解法一 5.2 解法二 题目二:小桥流水人家 1. 问题描 ...

  7. (每日一练python)组合总和

    组合总和 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无限 ...

  8. 每日一练——Python基础(六)

    def func(*args):  统计方法.函数.Animal类对象的个数. class Animal:sum=0def __init__(self,sex):self.sex=sexAnimal. ...

  9. (每日一练python)两数相除

    两数相除 给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符. 返回被除数 dividend 除以除数 divisor 得到的商. 整数 ...

最新文章

  1. 开源项目贡献者_嘿新手开源贡献者:请写博客。
  2. MySQL与优化有关的命令_MySQL优化全攻略-相关数据库命令
  3. 加密解密php,2个比较经典的PHP加密解密函数分享
  4. 计算机网络访问控制列表,南昌大学计算机网络实验-访问控制列表ACL
  5. 2021-01-25
  6. 可以伪装mysql子节点框架是啥_kingbus 架构设计之如何伪装成 MySQL Master 角色
  7. 报时功能_拥有自鸣等20种复杂功能的百达翡丽6300G 连日期都可以用打簧报时听出来...
  8. Android NDK下载链接
  9. Windows扫雷游戏python
  10. 依云工资查询系统升级至6.4
  11. 2010刚出土的句子
  12. 低代码开发平台是什么?
  13. 计算机应用基础练习题题(史上最全)
  14. 大唐波斯将军 机器人_波斯帝国被阿拉伯所灭,末代王子三次求助大唐,为何唐朝没有出兵...
  15. 贪心算法——1225:金银岛
  16. 【金融量化】CTA策略的构成
  17. mysql 视图 中文_Mysql视图-WEB资讯专栏-DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录....
  18. 常用电平标准——LVTTL、LVCMOS、LVDS
  19. Python登录大连交通大学教务在线实现成绩查询
  20. Oracle中的wn_concat()函数

热门文章

  1. codeblocks调出logs框
  2. python 伪造源ip_HTTP请求源IP伪造
  3. [倚天屠龙记] vim 折叠
  4. Prometheus Consul Blackbox | export 监控实现
  5. 满帮公布“春风行动”阶段成果,重点打击超低价、倒卖货源
  6. UIKit中ImageView动画堆叠显示的微调整
  7. 影响拼多多店铺流量的五大指标你知道多少?
  8. 关于Number()的用法
  9. HTML5网页设计笔记
  10. 计算机一级光盘如何安装,示例光盘如何装系统