题目
链接
代码
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int[] arr=new int[n];
for(int i=0;i<n;i++){
arr[i]=input.nextInt();
}
System.out.println(maxSum(arr));
}
public static int maxSum(int[] arr){
if(arr.length==0){
return 0;
}
int res=arr[0];
for(int i=1;i<arr.length;i++){
//arr[i]表示[0,i]的最大和
arr[i]+=Math.max(arr[i-1],0);
//更新最大值
res=Math.max(res,arr[i]);
}
return res;
}
}
复杂度
时间复杂度: O(n)
空间复杂度: O(1)