设计思想:
设数组长maxLength;
设子数组大小(length),依次为1,2,3,4,5........maxLength,并求每一个子数组的和
比较子数组和大小,求最大子数组和;
源代码:
import java.util.Vector;
public class MaxListNumber {
public static int maxList(int []num) {
int max=-99;
if(num.length<=0) {
System.out.println("数组为空。");
}
else {
Vector<Integer> numx=new Vector<>();
for(int i=1;i<num.length;i++) {
System.out.println("数组元素:"+num[i]);
for(int j=0;j<num.length;j++) {
int count=j;
int sum=0;
while(count-j<i&&count<num.length) {
sum=sum+num[count];
count++;
}
numx.add(sum);
}
}
max=numx.get(0);
for(int i=0;i<numx.size();i++) {
if(max<numx.get(i)) {
max=numx.get(i);
}
}
}
return max;
}
public static void main(String args[]) {
int number[]=new int[10];
for(int i=0;i<10;i++) {
number[i]=(int) (Math.random()*10-5);
}
int max=maxList(number);
System.out.println("最大子数组的和:"+max);
}
}