import java.util.*; public class Bonus { public int getMost(int[][] board) { //动态规划 int row = board.length; int col = board[0].length; int[][] dp = new int[row][col]; //边界初始化--第一行 和 第一列 dp[0][0] = board[0][0]; //第一行 for(int i=1;i<col;i++){ dp[0][i] = dp[0][i-1]+board[0][i]; } //第一列 for(int i=1;i<row;i++){ dp[i][0] = dp[i-1][0]+board[i][0]; } //状态转移 for(int i=1;i<row;i++){ for(int j=1;j<col;j++){ dp[i][j] = Math.max(dp[i-1][j],dp[i][j-1])+board[i][j]; } } return dp[row-1][col-1]; } }