//第二 package shangtang; import java.util.Scanner; /**  * @Param: 6  *    3 -1 8 6 5 2  * @Date: 2019/9/21 19:40  */ public class Main2 {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         int n = sc.nextInt();         sc.nextLine();         String inputs = sc.nextLine();         String[] s = inputs.split(" ");         if(s.length != n)             throw new RuntimeException("输入有误");         int[] nums = new int[n];         for(int i=0;i<n;i++)             nums[i] = Integer.valueOf(s[i]);         //如果全部数字小于0         boolean nf = true;         int minVal = Integer.MIN_VALUE;         for(int i=0;i<n;i++){             if(nums[i]>0){                 nf = false;                 break;             }             minVal = Math.max(minVal,nums[i]);         }         if(nf){             System.out.println(minVal);             return;         }         int maxVal = Integer.MIN_VALUE;  //最大总和         int curVal = 0;      // 当前总和         int startAddIndex = 0;  //开始相加时候的下标 , 记录让和为0时的下标         for(;startAddIndex<n;startAddIndex++){             curVal = 0;             for(int i=startAddIndex;i<n+startAddIndex;i++){                 int index = i%n;                 curVal += nums[index];                 if(curVal<0){                     curVal = 0;                 }                 if(curVal>maxVal)                     maxVal = curVal;             }         }         System.out.println(maxVal);     } }
点赞 1

相关推荐

05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享

牛客热帖

更多
牛客网
牛客企业服务