LeetCode 174. 地下城游戏
原题链接
困难
作者:
linux_2019
,
2019-05-14 20:45:36
,
所有人可见
,
阅读 986
C++ 代码
class Solution {
public:
int calculateMinimumHP(vector<vector<int>>& dungeon) {
int m=dungeon.size();
int n=dungeon[0].size();
vector<vector<int>> dp(m,vector<int>(n,0));
int i,j;
for(i=m-1;i>=0;i--)
for(j=n-1;j>=0;j--)
if(i==m-1&&j==n-1)
dp[i][j]=max(1-dungeon[i][j],1);
else if(i==m-1)
dp[i][j]=max(dp[i][j+1]-dungeon[i][j],1);
else if(j==n-1)
dp[i][j]=max(dp[i+1][j]-dungeon[i][j],1);
else
dp[i][j]=min(max(dp[i+1][j]-dungeon[i][j],1),max(dp[i][j+1]-dungeon[i][j],1));
return dp[0][0];
}
};