码迷,mamicode.com
首页 > 编程语言 > 详细

数组问题

时间:2020-07-05 10:48:12      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:源码   ini   name   circle   sum   mes   style   cst   stream   

(一)一维最大连续子数组和

源码:

#include<iostream> 

#include<cstdio>

using namespace std;

const int N=100000;

int main() {

int i,j,k;

int a[N];

int sum[N];

int n;

printf("请输入数组个数:\n");

cin>>n;

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

cin>>a[i];

sum[1]=a[1];

int maxn=sum[1];

for(i=2;i<=n;i++) {

if(sum[i-1]>0)

sum[i]=a[i]+sum[i-1];

else sum[i]=a[i];

maxn=max(maxn,sum[i]);

}

cout<<maxn<<endl;

return 0;

}

(二)环状数组求最大连续子数组和

#include<iostream>

#include<cstring>using namespace std;int n;int NotCircle(int a[])

{

    int maxn=-1000;

    int sum[10000];

    sum[0]=a[0];

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

    {

        if(a[i]<a[i]+sum[i-1])

        {

            sum[i]=a[i]+sum[i-1];

        }

        else

        {

            sum[i]=a[i];

        }

        if(maxn<sum[i])

            maxn=sum[i];

    }

    return maxn;

}

int findmin(int a[])

{

    int minx=10000000;

    int sum[10000];

    int flag=0;

    sum[0]=a[0];

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

    {

        if(sum[i-1]<0)

            sum[i]=sum[i-1]+a[i];

        else

            sum[i]=a[i];

        if(minx>sum[i])

        {

            minx=sum[i];

            flag=i;

        }

    }

    return flag;

}

int Circle(int a[])

{

      int minid=findmin(a);

      int key=(minid+1)%n;

      int j;

      int maxn=a[key];

      int sum=0;

      for(j=key;(j%n)!=minid;j++)

      {

          if(sum>0)

            sum+=a[j%n];

        else

            sum=a[j%n];

 

          if(maxn<sum)

            maxn=sum;

      }

      return maxn;

}

int main()

{

    int a[100],i,j;

    cin>>n;

    for(i=0;i<n;i++)

        cin>>a[i];

    int ans1=NotCircle(a);

    int ans2=Circle(a);

    cout<<ans1<<" "<<ans2<<endl;

    int ans=max(ans1,ans2);

    cout<<ans;

    return 0;

}

数组问题

标签:源码   ini   name   circle   sum   mes   style   cst   stream   

原文地址:https://www.cnblogs.com/2506236179zhw/p/13237958.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!