实例1.1 最大子列和问题 (20 分)

实例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;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/foolbirdM/article/details/117754748