我一直在努力学习Java技能,而且我目前正在研究LeetCode问题。 (链接:https://leetcode.com/problems/minimum-path-sum/)
我的解决方案如下,我得到的错误是"第16行:错误:意外类型"。我不知道我做错了什么。任何帮助将非常感激。
public class Solution {
public int minPathSum(int[][] grid) {
if (grid.length == 0) { return 0; }
if (grid[0].length == 0) { return 0; }
int m = grid.length;
int n = grid[0].length;
HashMap<int[], int> memoize = new HashMap<>();
return minPathSumHelper(memoize, grid, 0, 0, m, n);
}
public int minPathSumHelper(HashMap<int[], int> memoize, int[][] grid, int mIndex, int nIndex, int m, int n) {
int[] coordinatesBottom = {mIndex+1,nIndex};
int[] coordinatesRight = {mIndex,nIndex+1};
if (m==mIndex && n==nIndex) {
return grid[m][n];
} else if (m==mIndex) {
int minPathRight = memoize.containsKey(coordinatesRight) ? memoize.get(coordinatesRight) : minPathSumHelper(memoize,grid,mIndex,nIndex+1,m,n);
int sum = grid[mIndex][nIndex] + minPathBottom;
memoize.put(coordinates, sum);
return sum;
} else if (n==nIndex) {
int minPathBottom = memoize.containsKey(coordinatesBottom) ? memoize.get(coordinatesBottom) : minPathSumHelper(memoize,grid,mIndex+1,nIndex,m,n);
int sum = grid[mIndex][nIndex] + minPathBottom;
memoize.put(coordinates, sum);
return sum;
}
int minPathBottom = memoize.containsKey(coordinatesBottom) ? memoize.get(coordinatesBottom) : minPathSumHelper(memoize,grid,mIndex+1,nIndex,m,n);
int minPathRight = memoize.containsKey(coordinatesRight) ? memoize.get(coordinatesRight) : minPathSumHelper(memoize,grid,mIndex,nIndex+1,m,n);
int sum = grid[mIndex][nIndex]+Math.min(minPathBottom,minPathRight);
int[] coordinates = {mIndex,nIndex};
memoize.put(coordinates, sum);
return sum;
}
}