博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PAT-最大子列和问题(20)
阅读量:5236 次
发布时间:2019-06-14

本文共 1258 字,大约阅读时间需要 4 分钟。

给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。现要求你编写程序,计算给定整数序列的最大子列和。

输入格式:

输入第1行给出正整数 K (<= 100000);第2行给出K个整数,其间以空格分隔。

输出格式:

在一行中输出最大子列和。如果序列中所有整数皆为负数,则输出0。

输入样例:

6

-2 11 -4 13 -5 -2

输出样例:

20

程序:

1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStreamReader; 4  5 public class Main { 6     public static void main(String[] args) throws IOException { 7         BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); 8         String s1 = bf.readLine(); 9         String s2 = bf.readLine();10         int K = Integer.parseInt(s1);11         String[] s3 = s2.split(" ");12         int[] a = new int[K];13         for (int i = 0; i < a.length; i++) {14             a[i] = Integer.parseInt(s3[i]);15         }16         int ThisSum = 0, MaxSum = 0;17         for (int i = 0; i < K; i++) {18             ThisSum += a[i];19             if (ThisSum > MaxSum)20                 MaxSum = ThisSum;21             else if (ThisSum < 0)22                 ThisSum = 0;23         }24         System.out.println(MaxSum);25     }26 }

评测结果:

测试点:

 

转载于:https://www.cnblogs.com/fimwest/p/4185538.html

你可能感兴趣的文章
HTTP 错误 404.3由于扩展配置问题而无法提供您请求的页面
查看>>
第14章: 带参数的方法
查看>>
三范式
查看>>
linux make
查看>>
MUI 之 日期选择器 简单易懂
查看>>
Hibernate(二)——一对多查询
查看>>
20145205《信息安全系统设计基础》第13周学习总结
查看>>
python根据圆的参数方程求圆上任意一点的坐标
查看>>
243. Shortest Word Distance
查看>>
windows下自动关机
查看>>
56)PHP,模型类的设计思想
查看>>
云+社区招募技术作者
查看>>
【算法】三角形最小路径债务
查看>>
MapReduce 找出共同好友
查看>>
我的Java开发学习之旅------&gt;Workspace in use or cannot be created, choose a different one.--错误解决的方法...
查看>>
cocos2d-x 关于旋转和移动的一点小技巧
查看>>
MapReduce全局变量之捉虫记
查看>>
Xcode界面切换动画效果
查看>>
poj1459 Power Network --- 最大流 EK/dinic
查看>>
Ubuntu 14.04 下手动安装Firefox的Flash插件
查看>>