编辑代码

class Mains {
    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}};
        Mains mains = new Mains();
        int result = mains.collectCoin(coin);
        System.out.println("结果是:"+result);
	}
}