马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
数据结构MOOC
PTA习题
01-复杂度1 最大子列和题目
使用在线处理处罚,遍历数组,假如当前数组和小于0则扬弃,每次更新最大值。
我们假设终极效果为数组中央的一段,那么左边剩余的部分和右边剩余的部分和肯定小于0,对答案没有贡献。
- #include <iostream>
- using namespace std;
- const int M=100005;
- int a[M];
- int main()
- {
- int k;
- cin>>k;
- for(int i=0;i<k;i++ )cin>>a[i];
- int s=0,ma=0;
- for(int i=0;i<k;i++)
- {
- s+=a[i];
- ma=max(s,ma);
- if(s<0)
- {
- s=0;
- }
- }
- cout<<ma;
-
- return 0;
-
- }
复制代码
|