Minimum Path Cost in a Grid LeetCode solution in Java

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

4
public int minPathCost(int[][] grid, int[][] moveCost) {
5
dp = new Integer[grid.length][grid[0].length];
6
int ans = Integer.MAX_VALUE;
7

8
for (int i = 0; i < grid[0].length; i++) {
9
ans = Math.min(ans, grid[0][i] + helper(grid, moveCost, grid[0][i], 1));
10
}
11
return ans;
12
}
13

14
public int helper(int[][] grid, int[][] moveCost, int cur, int i) {
15
if (i == grid.length) {
16
return 0;
17
}
18
int ans = Integer.MAX_VALUE;
19
for (int k = 0; k < grid[0].length; k++) {
20
int a = Integer.MAX_VALUE;
21
if (dp[i][k] != null) {
22
a = dp[i][k];
23
} else {
24
a = helper(grid, moveCost, grid[i][k], i + 1);
25
dp[i][k] = a;
26
}
27
ans = Math.min(grid[i][k] + moveCost[cur][k] + a, ans);
28
}
29
return ans;
30
}
31
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0