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

这篇博客详细解析了LeetCode第174题——地下城游戏的动态规划解决方案。作者指出,难点在于建立状态转移方程,并提供了从右下角往左上角推导的思路。博客内容包括特殊情况的分析,如1x*n或n*1的二维数组,并逐步解释了二维复杂情况下的状态转移方程。最后,博主分享了实现算法的Python代码,强调了理解问题多角度思考对于解决动态规划问题的重要性。
摘要由CSDN通过智能技术生成

本题为LeetCode题库中第174题地下城游戏,难度困难,题目请参考这里

一道比较困难DP题目,其中的难点在于如何定义状态转移方程,所以在这里记录一下。这道题刚开始做一点思路都没有,但是通过解读别人的思想一下就明白了。

首先一看到这道题,思路肯定是DP来做:直觉从左上出发往右或者往下走这样去找规律,从而得到dp的状态转移方程。在这里建议先把这道题做了。本题有点特殊,如果没有 至少 这个条件从左上往右下推找规律得到状态转移方程的思路应该是可以的。这里我们不去讨论从左上往右下的思路,直接想从右下往左上推。

首先,我们不去考虑二维的复杂情况,考虑二维数组为1*n或者n*1的情况。那么有:

解释一下,比如最后一点是-5那么dp数组在这个位置的数值至少为6才能满足6-5>=1,往前为2那么这个位置的dp数组至少为6-2=4,也就是说在这个位置是4加上2在到最后-5也能满足骑士在每个位置的生命值都

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值