java 计算最大子数组
package test;
import java.util.Random;
import java.util.Arrays;
import java.util.Collections;
public class test {
public static void main(String[] args) {
Random ra=new Random();
Integer a[]=new Integer[50];
for(int i=0;i<50;i++) {
int m=ra.nextInt(10)-5;
a[i]=m;
}
for(int i=0;i<50;i++) {
System.out.print(a[i]+" ");
}
int max=Collections.max(Arrays.asList(a));
System.out.println(max);
int max1 = 0;
for(int i=0;i<a.length-1;i++) {
for(int j=i+1;j<a.length;j++) {
int sum=0;
for(int k=0;k<=j-i;k++) {
sum=sum+a[i+k];
}
if(sum>max1) {max1=sum;}
}
}
System.out.println(max1);
}
}
该算法时间复杂度不为O(n)比较笨的三层for循环算法。
浙公网安备 33010602011771号