本题为LeetCode题库中第174题地下城游戏,难度困难,题目请参考这里。
一道比较困难DP题目,其中的难点在于如何定义状态转移方程,所以在这里记录一下。这道题刚开始做一点思路都没有,但是通过解读别人的思想一下就明白了。
首先一看到这道题,思路肯定是DP来做:直觉从左上出发往右或者往下走这样去找规律,从而得到dp的状态转移方程。在这里建议先把这道题做了。本题有点特殊,如果没有 至少 这个条件从左上往右下推找规律得到状态转移方程的思路应该是可以的。这里我们不去讨论从左上往右下的思路,直接想从右下往左上推。
首先,我们不去考虑二维的复杂情况,考虑二维数组为1*n或者n*1的情况。那么有:
解释一下,比如最后一点是-5那么dp数组在这个位置的数值至少为6才能满足6-5>=1,往前为2那么这个位置的dp数组至少为6-2=4,也就是说在这个位置是4加上2在到最后-5也能满足骑士在每个位置的生命值都