一维数组中的最大子数组(环状)

精简版,没有输出下标。

在原基础上加上回溯和两个标记,还没进一步测试。

#include<iostream>
using namespace std;

void main()
{
    int i,j=0,k=0,n=5;
    int a[100];
    int temp=0,sum=0;
    
    for(i=0;i<n;i++)
        cin>>a[i];
    
    for(i=0;i<n;i++)
    {
        if(temp>0)
        {
            temp+=a[i];
        }
        else 
        {
            temp=a[i];
            if(a[i]>0 && k==0) k=i;
        }
        if(temp>sum)
        {
            sum=temp;
        }
        if(i==n-1 && j==0) 
        {
            i=-1;
            j=1;
            n=k;
        }
    }
    cout<<sum<<endl;
}

posted @ 2015-04-11 20:10  主題遠志  阅读(189)  评论(1)    收藏  举报