4
public int minPathCost(int[][] grid, int[][] moveCost) {5
dp = new Integer[grid.length][grid[0].length];6
int ans = Integer.MAX_VALUE;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));14
public int helper(int[][] grid, int[][] moveCost, int cur, int i) {15
if (i == grid.length) {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) {24
a = helper(grid, moveCost, grid[i][k], i + 1);27
ans = Math.min(grid[i][k] + moveCost[cur][k] + a, ans);