Dungeon Game
class Solution:
def calculateMinimumHP(self, dungeon: List[List[int]]) -> int:
if not dungeon or not dungeon[0]:
return 0
n, m = len(dungeon), len(dungeon[0])
dp = [[float('inf')] * (m + 1) for i in range(n + 1)]
dp[n][m-1]=dp[n-1][m]=1
for i in range(n-1,-1,-1):
for j in range(m-1,-1,-1):
temp = min(dp[i + 1][j], dp[i][j + 1])-dungeon[i][j]
dp[i][j] = 1 if temp <= 0 else temp
return dp[0][0]Last updated