题目1527:首尾相连数组的最大子数组和
来源:互联网 发布:淘宝 消防工程师教材 编辑:程序博客网 时间:2024/06/05 21:16
import java.util.Scanner;import java.io.IOException;import java.io.FileReader;import java.io.BufferedReader;class Main{private final static boolean DEBUG = false;public static void main(String[] args) throws IOException{Scanner cin;int n;int[] a;if (DEBUG) {cin = new Scanner(new BufferedReader(new FileReader("d:\\OJ\\uva_in.txt")));} else {cin = new Scanner(System.in);}while (cin.hasNext()) {n = cin.nextInt();a = new int[n];for (int i = 0; i < n; i++) {a[i] = cin.nextInt();}int sum1, min;sum1 = min = a[0];int index = 0;for (int i = 1; i < n; i++) {if (sum1 < 0) {sum1 += a[i];} else {sum1 = a[i];}if (sum1 < min) {min = sum1;index = i;}}int[] sum = new int[n];int max = sum[(index + 1) % n] = a[(index + 1) % n];for (int i = 2; i < n; i++) {int prev = (index + i - 1) % n;int cur = (index + i) % n;if (sum[prev] > 0) {sum[cur] = sum[prev] + a[cur];} else {sum[cur] = a[cur];}max = Math.max(max, sum[cur]);}int b, sum2;b = sum2 = a[0];for (int i = 1; i < n; i++) {if (sum2 > 0) {sum2 += a[i];} else {sum2 = a[i];}if (sum2 > b) {b = sum2;}}if (b > max) max = b;if (max < 0) max = 0;System.out.println(max);}}}
0 0
- 题目1527:首尾相连数组的最大子数组和
- 题目1527:首尾相连数组的最大子数组和
- NYOJ 题目983 首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和
- 题目1527:首尾相连数组的最大子数组和-九度
- 九度OJ—题目1527:首尾相连数组的最大子数组和
- JD 1527:首尾相连数组的最大子数组和
- 九度 1527 首尾相连数组的最大子数组和
- 数组的连续子数组最大和(首尾相连)
- 基于感知Hash算法的视觉目标跟踪
- java集合类
- 深入Blocks分析
- Easyui 项目展示
- 修改cas登陆页面-服务器端
- 题目1527:首尾相连数组的最大子数组和
- 后台自动发送邮件的程序(Java Mail,WEB版)
- 一个建议
- Ubuntu Linux 环境变量PATH设置
- 初始Mapr(四)——准备每个节点
- HashMap的工作原理
- 发布v1.0.0.0 酷袋
- WITH AS and materialize hints
- unity3d学习笔记(四)--自定义角色控制脚本及平滑转身