zoukankan      html  css  js  c++  java
  • 结组开发

    1、题目:

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

    2、要求:

        输入一个整形数组,数组里有正数也有负数。

        数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。

        求所有子数组的和的最大值。要求时间复杂度为O(n)。

    3.开发过程及思路:

        我的搭档是赵永恒,刚开始我们两个想的都比较简单而且比较统一,只是想用一个for循环来输出每组的和,在用一个比较的函数来求出最大值。但是我们的想法太简单,后来经过我们两人的商讨,决定用循环的嵌套来实现每一组数值的求和。在比较函数中我们俩也出现了分歧,一开始他想把比较函数放在循环中,temp的值每次定义也放在里边,结果总是输出单个值。最后我们把temp 的初值定义在了主函数前边,实现了程序的正常运行。

    4.程序代码:

    #include<iostream.h>
    
    int main()
    {
        int a[10];
        int m;              //m是每组个数
        int *sum=new int[10];
        cout<<"请输入数组:"<<endl;
        cout<<"*********************************"<<endl;
        for(int i=0;i<10;i++)
        {
            cin>>a[i];
        }
        cout<<"*********************************"<<endl;
        cout<<"请输入每组个数:"<<endl;
        cin>>m;
        cout<<"*********************************"<<endl;
        int temp=0;
        for(int n=0;n<m;n++)
        {
            temp=temp+a[n];
        }
        for(int k=0;k<=(10-m);k++)
        {
            sum[k]=0;
            for(int j=k;j<(k+m);j++)  //a[k]是每组第一个数
            {
                sum[k]=sum[k]+a[j];
            }
            if(sum[k]>temp)
            {
                temp=sum[k];    
            }    
        }
        cout<<"最大和为: "<<temp<<endl;
        cout<<"*********************************"<<endl;
        return 0;
    }

    5.运行结果截图:

    6.感想:

        两个人结组开发,在思路上能够互相借鉴,有个人进行讨论也能加快程序的编写速度。最让我感受深刻的就是有的时候自己一个人编程没有特别大的动力和积极性,遇到一个困难总是调不出来的话就容易失去信心而放弃。两个人一起来完成这个项目的话,调动了我的积极性,总是觉得不能在集体里不干活,两个人一起来解决一个问题,思路也会很活跃,很专心。所以能在很少的时间里完成这个程序。 

    7.合照:

  • 相关阅读:
    页脚保持在未满屏页面的底部
    jquery tab选项卡
    Unity 物体在屏幕内跟随鼠标移动
    Unity 中一些图形学知识
    Unity 简单的第三人称视角
    Unity 一个简单的鼠标跟随
    Unity常用操作代码
    3D渲染管线
    教你如何利用threejs对3D模型皮肤进行DIY
    从Maya中把模型搬运至网页的过程
  • 原文地址:https://www.cnblogs.com/fan123/p/4347887.html
Copyright © 2011-2022 走看看