编辑代码

class Main {
    int collectCoin(int coin[][]) {
        int[][] dpArray = new int[coin.length][coin[0].length];
        for (int i=0; i<coin.length; ++i) {
            for (int j=0; j<coin[i].length; ++j) {
                int coinCollect = 0;
                if (i>0 && j>0) {
                    coinCollect += Math.max(dpArray[i-1][j], dpArray[i][j-1]);
                    if (dpArray[i-1][j] > dpArray[i][j-1]) coinCollect+=dpArray[i-1][j];
                } else if (i > 0) {
                    coinCollect += dpArray[i-1][j];
                } else if (j > 0) {
                    coinCollect += dpArray[i][j-1];
                }
                coinCollect += coin[i][j];
                dpArray[i][j] = coinCollect;
            }
        }
        return dpArray[coin.length-1][coin[0].length-1];
    }
	public static void main(String[] args) {
        int[][] coin = {
            {0,0,0,0,1,0},
            {0,1,0,1,0,0},
            {0,0,0,1,0,1},
            {0,0,1,0,0,1},
            {1,0,0,0,1,0}
        };
        collectCoin(coin);
	}
}