地牢游戏 public static int dilao(int arr[][]){ if(arr.length==0) { return 0 ; } int [][]dp = new int[arr.length][arr[0].length]; int row = arr.length; int col = arr[0].length; dp[row-1][col-1]=Math.max(1, 1-arr[row-1][col-1]); for (int i = col-2; i >=0; i--) { dp[row-1][i]=Math.max(1, dp[row-1][i+1]-arr[row-1][i]); } for (int i = row-2; i >=0; i--) { dp[i][row-1]=Math.max(1,dp[i+1][col-1]-arr[i][col-1]); } for (int i = row-2; i >=0; i--) { for (int j =col-2; j >=0; j--) { int min = Math.min(dp[i+1][j],dp[i][j+1]); dp[i][j]=Math.max(1,min-arr[i][j]); } } return dp[0][0]; }