Solution 1
【官方题解参考】
正眼一看就会知道是动态规划,但是实际考虑的时候会发现一个问题:从左上到右下的方向的规划计算无法在后续确认的情况下完全确认。最优路径会随着后续的结果的选择而不断发生变化,无后效性不成立。
反过来看,实际上本体就是在求取初始值。因此如果将规划方向从左上变成右下,整个逻辑就通了……
最优子结构: d p [ i ] [ j ] dp[i][j] dp[i][j],从终点(右下)到达当前点所需要的最小能量值
初始值: d p [ m − 1 ] [ n − 1 ] = max ( 1 , 1 − d u n g e o n [ m − 1 ] [ n − 1 ] ) dp[m-1][n-1] = \max (1, 1 - dungeon[m - 1][n-1]) dp[m−1][n−1]=max(1,1−dungeon[m−1][n−1])
初始条件:对应地,寻找正负关系
条件转移:找最小负担 d p [ i ] [ j ] = max ( 1 , min ( d p [ i + 1 ] [ j ] , d p [ i ] [ j +