Dungeon Game LeetCode solution in Java

1
class Solution {
2
Integer[][] min;
3

4
public int calculateMinimumHP(int[][] dungeon) {
5
min = new Integer[dungeon.length][dungeon[0].length];
6
int answer = min(0, 0, dungeon);
7
return Math.max(answer, 1);
8
}
9

10
public int min(int i, int j, int[][] dungeon) {
11
if (i > dungeon.length - 1 || j > dungeon[0].length - 1) return 400000;
12
if (i == dungeon.length - 1 && j == dungeon[0].length - 1) return -dungeon[i][j] + 1;
13
if (min[i][j] == null) {
14
int down = min(i + 1, j, dungeon);
15
int right = min(i, j + 1, dungeon);
16
min[i][j] = Math.min(Math.max(right, 1), Math.max(down, 1)) - dungeon[i][j];
17
}
18
return min[i][j];
19
}
20
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0