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

返回整数数组最大子数组

时间:2018-10-14 19:07:57      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:max   感想   src   多个   连续   for   ace   有一个   space   

应王老师要求,和李子木同学共同完成编程任务。

       要求程序必须能处理1000 个元素,每个元素是int32 类型的;输入一个整形数组,数组里有正数也有负数。

  数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
  求所有子数组的和的最大值。要求时间复杂度为O(n)。 
#include <iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
int main()
{
    int i;
    int a[10000];
    int max = 0;
    int b = 0;
    srand(time(NULL));
    cout<<"数组为:"<<endl;
    for (i = 0; i<10000; i++)
    {
        a[i] = rand()*4294967296 ;
    }
    for (i = 0; i<10000; i++)
    {
        cout << a[i] << ‘\t‘;
    }
    cout << endl;
    for (i = 0; i < 10000; i++)
    {
        b += a[i];
        if (b < 0)
            b = 0;
        if (b > max)
            max = b;
    }
    if (max == 0)
    {
        max = a[0];
        for (i = 0; i < 10000; i++)
        {
            if (max < a[i])
            {
                max = a[i];
            }
        }   
    }
    cout <<"最大子数组为:"<< max << endl;
    system("pause");
    return 0;
}
截图:技术分享图片
 
感想:
有的时候程序运行结果会是都是0,这好像是因为数据过多导致程序出错,数据长度减少就可以解决了。程序比较难,需要多加考虑。
附上和李子木同学的合照。。
技术分享图片
 
 

返回整数数组最大子数组

标签:max   感想   src   多个   连续   for   ace   有一个   space   

原文地址:https://www.cnblogs.com/miniarcher/p/9787106.html

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