洛谷1115 最大子段和
来源:互联网 发布:王千源事件 知乎 编辑:程序博客网 时间:2024/06/08 08:59
最大子段和
问题描述
给出一段序列,选出其中连续且非空的一段使得这段和最大。
分析
从第一个一直往后加,记录最大值,加到和为负数时从0开始继续加。注意会有全是负数的情况最后判断即可。
时间复杂度
O(n)
代码
const
maxn=200000;
var
a:array[0..maxn] of longint;
n,ans,i,x:longint;
begin
readln(n);
for i:=1 to n do
read(a[i]);
for i:=1 to n do
begin
x:=x+a[i];
if x>ans then ans:=x;
if x<0 then x:=0;
end;
if ans=0 then
begin
ans:=-maxlongint;
for i:=1 to n do
if a[i]>ans then ans:=a[i];
end;
writeln(ans);
end.
0 0
- 洛谷1115最大子段和
- 洛谷1115 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- “最大子段和”
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 用类别添加方法可能存在的问题
- springMvc入门--初识springMvc
- bzoj 1316: 树上的询问 (点分治)
- 微信支付注意事项--Android版
- Spark快速大数据分析 第4章
- 洛谷1115 最大子段和
- IAR编译信息-size解读
- 京东消息中间件JMQ
- 关于Nessus的服务启动与插件更新
- spring中使用redis做缓存
- 约瑟夫问题
- spark本地模式和Standalone配置
- HTML每日一结1.13
- 快速排序