zoukankan      html  css  js  c++  java
  • 求子数组和最大值拓展

    题目:返回一个整数数组中最大子数组的和。

    要求: 要求程序必须能处理1000 个元素; 每个元素是int32 类型的。

    输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。

    我的组员是朱少辉,我负责代码复审和代码测试。

    设计思想:将数组长度范围扩大能够处理1000个数,而Int32 值类型表示值介于 -2,147,483,648 到 +2,147,483,647 之间的有符号整数,当大于该数时则会归零,可以用string类型来实现。

    代码:#include<iostream>

    #include<cmath>
    using namespace std;
    void main()
    {
             int a[25000],i,j,f,n;
             int MaxSum = 0;
             int k = 0;
             cout<<"请输入数组中数字的个数"<<endl;
             cin>>n;
             for(i=0;i<n;i++)
             {
                       j=rand()%2+1;
                       f=pow(-1.0,j);
                       a[i]=f*rand()%100000;
              }

             cout<<endl;
             cout<<"最大子数组为";

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

                       k += a[i];
                       if(k > MaxSum)

                       {
                       MaxSum = k;
                        }
                       if(k < 0)

                       {
                       k = 0;

                       }

             }

             cout<<MaxSum<<endl;
    }

    截图:

    工作照:

     出现问题:当数值过大或者数组长度过大时,计算机会报错,因为超出了int32类型的范围,所以可用String字符串解决问题。

    总结:当两个人结对开发时,会有少许的碰撞和摩擦,但最终能够交换意见和看法,将问题简单化,更快地解决问题。可见合作对软件团队开发的重要性。

  • 相关阅读:
    1270. 数列区间最大值(climits用法+线段树模板题)
    JDBC&DBCP总结
    1264. 动态求连续区间和(树状数组模板题)
    788. 逆序对的数量(归并排序的应用)
    归并排序(模板题)
    ZoomEye技巧
    工具或安全监测网站(不定时更新)
    bp截包
    CTF/web
    CTF/stega——图片隐写
  • 原文地址:https://www.cnblogs.com/houtaoliang/p/4377472.html
Copyright © 2011-2022 走看看