📄 最长子段问题 .txt
字号:
#include<iostream>
#include<algorithm>
using namespace std;
int a[31],b[31];
void main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
b[1]=a[1]>0?a[1]:0;//b[i]用以纪录以a[i]为最后元素的最大子段和,此题最终要求max{b[i]},1<=i<=n;
for(i=2;i<=n;i++)
{
if(b[i-1]==0)
{
b[i]=a[i]>0?a[i]:0;
}
else
{
if(a[i]+b[i-1]>0)
b[i]=a[i]+b[i-1];
else
b[i]=0;
}
}
cout<<*max_element(b+1,b+1+n)<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -