设计思想

从第一个元素开始循环,在嵌套另一个循环,从每个元素开始,依次加上后边的元素,当和大于最大值时,把和赋值给最大值,并记录此时的首元素的下标和尾元素的下标,输出这几个元素,和他们的和。

public class Max {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a[]={1,9,-5,6,-4,3};
		int start = 0,end = 0;
		int max = a[0],sum = a[0];
		for(int i=0;i<a.length;i++)
		{
			sum = a[i];
			if(sum > max)
			{
				max = sum;
				start = i;
				end = i;
			}
			for(int j=i+1;j<a.length;j++)
			{
				sum+=a[j];
				if(sum > max)
				{
					max = sum;
					start = i;
					end = j;
				}
			}
		}
		System.out.println("该数组是:");
		for(int i=0;i<a.length;i++)
		{
			System.out.print(a[i]+" ");
		}
		System.out.println("最大子数组的和是:"+max);
		System.out.println("最大子数组为:");
		for(int i = start;i<=end;i++)
		{
			
			System.out.print(a[i]+" ");
		}
	}

}

  运行截图

 

posted on 2017-04-12 00:42  账号你好  阅读(196)  评论(0编辑  收藏  举报