- 前言
- 试题 算法提高 最大连续子段和
- 二、代码如下
- 方法1
- 方法2
- 总结
前言
`算法基础内容,快看看这道简单题。
试题 算法提高 最大连续子段和
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
给出一个长为n的数列,a1,a2,……,an,求和最大的连续子序列,即找到一对(i,j),i<=j,使ai+ai+1+……+aj的和最大,输出这个和
输入格式
第一行为正整数n
第二行n个用空格分开的整数
表示a1,a2,……,an
输出格式
一个整数,表示最大连续子序列的和
样例输入
3
-1 -2 -3
样例输出
-1
数据规模和约定
1<=n<=105,-105<=ai<=10^5
#includeusing namespace std; const int N=1e6+10; int a[N]; int main() { int n,tmep,ret=-1e5-10,sum; cin>>n; for(int i=0;i >a[i]; for(int i=0;i sum=0; for(int j=i;j sum+=a[j]; ret=max(ret,sum); } } cout< 方法2 #includeusing namespace std; int main(){ int n,a;cin>>n; int t=0,m=0,i; for(i=0;i cin>>a; t+=a; if(t>m)m=t; else if(t<0)t=0; } cout< 该题可用方法2ac,而且比方法1快10倍
总结以上就是今天要讲的内容,本文仅仅简单介绍了该题的两种方法,



