美文网首页
C语言解决最大连续子序列问题的代码

C语言解决最大连续子序列问题的代码

作者: 花千骨MM | 来源:发表于2019-01-31 08:50 被阅读0次

下面内容是关于C语言解决最大连续子序列问题的内容,应该对码农们也有好处。

6

-2 11 -4 13 -5 -2

10

-10 1 2 3 4 -5 -23 3 7 -21

6

5 -8 3 2 5 0

1

10

3

-1 -5 -2

3

-1 0 -2

0

SampleOutput

20 11 13

10 1 4

10 3 5

10 10 10

0 -1 -2

0 0 0

#include<cstdio>

#include<iostream>

#include<cstring>

#include<cstdlib>

using namespace std;

int main()

{

    int n;

    while(scanf("%d",&n),n)

    {

        int flag=1;

        int temp[10001],now,max;

        cin>>temp[0];

        now=max=temp[0];

        int begin,end,mid;

        begin=end=mid=0;

        for(int i=1; i<n; i++)

            cin>>temp[i];

        for(int j=0; j<n; j++)

            if(temp[j]>=0)

            {

                flag=0;

                break;

            }

        if(flag==0)

        {

            for(int i=1; i<n; i++)

            {

                if(now+temp[i]<temp[i])

                {

                    now=temp[i];

                    mid=i;

                }

                else now+=temp[i];

                if(max<now)

                {

                    max=now;

                    begin=mid;

                    end=i;

                }

            }

            printf("%d %d %dn",max,temp[begin],temp[end]);

        }

        else printf("0 %d %dn",temp[0],temp[n-1]);

    }

    return 0;

}

相关文章

网友评论

      本文标题:C语言解决最大连续子序列问题的代码

      本文链接:https://www.haomeiwen.com/subject/pexksqtx.html