51nod-最大子段和问题
2016-08-15 16:25
197 查看
给出一个整数数组a(正负数都有),如何找出一个连续子数组(可以一个都不取,那么结果为0),使得其中的和最大?
输入
输出
输入示例
输出示例
输入
第1行:整数序列的长度N(2 <= N <= 50000) 第2 - N + 1行:N个整数(-10^9 <= A[i] <= 10^9)
输出
输出最大子段和。
输入示例
6 -2 11 -4 13 -5 -2
输出示例
20
<span style="font-size:18px;">#include<cstdio> #define LL long long LL num[50000+11]; int main() { int n; scanf("%d",&n); int i; for(i=0;i<n;++i) scanf("%lld",&num[i]); LL sum=0,max=0; for(i=0;i<n;++i) { sum+=num[i]; if(sum>max) max=sum; if(sum<0) sum=0; } if(max<0) printf("0\n"); else printf("%lld\n",max); return 0; }</span>
相关文章推荐
- 关于hibernate查询
- JavaEE——将访问的内容按照指定格式文件下载下来
- POJ3254-Corn Fields(状压DP)
- Java IO 文件
- 监控线上错误日志
- hibernate基础篇
- 旅行 (Standard IO)
- 使用 gooreplacer 解决 stackoverflow 网站缓慢问题
- 炫酷反演魔术 魔术揭秘
- 可视化日历程序----Date时间类 Calendar日历类的应用
- iOS开发摇一摇功能
- 理解SVG transform坐标变换
- 项目08-15
- 如何提高代码质量(管理篇):代码复查
- JavaScript中var的重要性
- tomcat启动报错java.lang.IllegalArgumentException
- 工厂模式
- spring框架结构
- iOS获取系统相册中的图片
- AsnyncTask——AsnyncTask内部机制