Java:函数声明中的意外类型

时间:2016-08-27 04:18:49

标签: java

我一直在努力学习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;
}

}

0 个答案:

没有答案