返回一个整数数组中最大子数组的和
要求:1.输入一个整型数组,数组里有正数也有负数
2.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和
3.求所有子数组和的最大值。要求时间复杂度为O(n);
刚开始想的时候完全没有思路,庄忠旭给我们讲了他的思路之后才有了思路,但是还是不知道具体的代码写作,在他展示了自己的代码之后,经过思考也是明白了,基本上就是他的思路和方法
public class main{
public static int max(int a,intb){
return a>b?a:b;
}
public static void main{
Scanner scanner=new Scanner(System.in);
int[] a=new int[];
int[] temp=new int[];
int n,k=0;
n=scanner.nextInt;
for(int i=1;i<=n;i++){
a[i]=scanner.nextInt;
temp[i]=max(0,temp[i-1]+a[i]);
k=max(temp[i],k);
}
System.out.println(k);
}
浙公网安备 33010602011771号