实践周2

#include<iostream>
using namespace std;
int a[100001];
int maxsum(int n)
{
    int sum = 0, b = 0;
    for(int i = 1; i<=n; i++)
    {
        if(b > 0) b += a[i];
        else b = a[i];
        if(b > sum) sum = b;
    }
    return sum;
}
int main()
{
    int n;
    cin >> n;
    for(int i = 1; i<=n; i++)
    {
        cin >> a[i];
    }
    cout << maxsum(n);
}

第二个想讲讲的题目是最大子列和问题,这题算是算法的经典题了,记得当时第一次做是没做出来的。
这次做的过程意外的顺利,虽然代码很短,但是之前自己试着第二次写出来都没写出来,当时是肯定没理解到做法,第一个for循环是比较绕的一种写法,但是这也体现了算法的优越性。

posted on 2021-07-14 16:13  _车仔  阅读(38)  评论(0)    收藏  举报

导航