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循环算法。

posted @ 2022-03-13 22:30  Rebz  阅读(50)  评论(0编辑  收藏  举报