求数组最大子数组
题目:返回一个整数数组中最大子数组的和。
要求:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)
package max;
import java.util.Scanner;
public class Maxnnum {
public static void main(String[] args) {
int []a=new int[100];
Scanner input=new Scanner(System.in);
int n=input.nextInt();
for(int i=0;i<n;i++) {
a[i]=input.nextInt();
}
for(int i=1;i<n;i++) {
if(a[i]+a[i-1]>a[i]) {
a[i]=a[i]+a[i-1];
}
}
int ans=-10000;
for(int i=0;i<n;i++) {
ans=Math.max(ans, a[i]);
}
System.out.println(ans);
}
}

浙公网安备 33010602011771号