1.题目:
返回一个整数数组中最大数组的和
2.要求:
(1)输入一个整数数组,数组里有正数也有负数。
(2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
(3)求所有子数组的和的最大值。有球时间复杂度为O(n)。
import java.util.Scanner; public class test02 { public static void main(String[] args) { int max=0,number=0,result=0; Scanner in=new Scanner(System.in); System.out.print("请输入需要的数组长度:"); number=in.nextInt(); int a[]=new int [number]; System.out.println("请输入一个长度为"+number+"的数组(输入范围:自然数):"); for(int i=0;i<number;i++) { a[i]=in.nextInt(); } max=a[0]; for(int i=0;i<number;i++) { result=result+a[i]; if(result>max) { max=result; } if(result<0) { result=0; } } System.out.println("该数组中相邻的元素所组成的子集的和中,最大值为:"+max); } }
我的题目思路就是判断result是否是大于0,只要是加上后面的数,只要是大于0,我的数组相邻元素相加一定是增大的,如果小于0,让result=0,max保持不变.
标签:返回,int,max,number,整数,result,数组 From: https://www.cnblogs.com/psh888/p/17185433.html