实例1.1 最大子列和问题 (20 分)
本题还算温柔,只让你求和,没有让你求序列。
将序列和累加,再比较它与之前的序列和谁更大。
如果出现序列和小于零,就将序列和重置为零。
#include<iostream>
using namespace std;
int num[100001];
int main()
{
int N, now = 0, max = 0;
cin >> N;
for(int i = 0; i < N; i++)
cin >> num[i];
//求和比较
for(int i = 0; i < N; i++)
{
now += num[i];
if(now < 0) now = 0; //小于零就重置
if(now > max) max = now;
}
cout << max;
return 0;
}