import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static int getMax(int a,int b){ //获取最大值的函数 return a>b?a:b; //三目运算符 } public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int n = in.nextInt(); int[] array = new int[n]; //初始化数组 for(int i=0;i<n;i++){ array[i]=in.nextInt(); } int sum=array[0]; //当做dp[i] int max=array[0]; //存储dp[i]中的最大值 for(int i=1;i<n;i++){ //i是从1开始的,因为0已结先做dp[i-1]l sum=getMax(sum+array[i],array[i]);//dp[i]的两种取值,找最大的 if(sum>max){ max=sum; //取缔max有两种情况,首先dp[i-1]是正数,然后dp[i]+正数,当然大于原来的max了,或者dp[i-1]为负数此时dp[i]就等于arr[i] } } System.out.println(max); } } }