编辑代码

#include <iostream>
using namespace std;

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}
        }
	}
}