示例代码
package com.shun.array;
import java.util.Random;
public class SumArray {
public final static int X = 5;
public final static int Y = 5;
private static int[][] baseData;
private static void init(){
baseData = new int[X][Y];
for (int i = 0; i < X; i++) {
for (int j = 0; j < Y; j++) {
Random rand = new Random();
baseData[i][j] = rand.nextInt(10);
System.out.print(baseData[i][j]);
System.out.print(" ");
if(j==baseData[0].length-1){
System.out.println();
}
}
}
}
public static void main(String[] args) {
init();
testAdd();
}
private static void testAdd() {
int result = addMax(0,0,baseData[0][0]);
System.out.println("运算结果:"+result);
}
/**
*
* @param i 横向向右移动
* @param j 纵向向下移动
* @param sum 当前最优和
* @return
*/
private static int addMax(int i, int j,int sum) {
if(i+1<X && j+1<Y){
if(baseData[i+1][j]>=baseData[i][j+1]){
i++;
}else{
j++;
}
}else if(i+1==X&&j+1<Y){
j++;
}else if(i+1<X&&j+1==Y){
i++;
}else{
return sum;
}
sum+=baseData[i][j];
return addMax(i, j, sum);
}
}
运行结果
7 0 8 8 7
6 7 4 8 9
7 7 3 3 9
9 7 9 7 5
2 7 3 0 6
运算结果:63