Dungeon Game LeetCode solution in Python
1class Solution:23def calculateMinimumHP(self, dungeon: List[List[int]]) -> int:45dp = defaultdict(lambda: inf)6dp[(len(dungeon), len(dungeon[0]) - 1)] = 178for i in range(len(dungeon) - 1, -1, -1):910for j in range(len(dungeon[0]) - 1, -1, -1):1112dp[(i, j)] = min(dp[(i + 1, j)], dp[(i, j + 1)]) - dungeon[i][j]1314if dp[(i, j)] <= 0:15dp[(i, j)] = 11617return dp[(0, 0)]