• 求数组中最大子数组的和(一维)


    结对开发:林彦汝、张金

     

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

    要求:

    1、输入一个整型数组,数组里有正数也有负数;

    2、数组中连接的一个或多个整数组成一个子数组,每个子数组都有一个和;

    3、求素有子数组的和的最大值。

     

      本节课是学习结对开发,故先分配了任务:我主要负责程序分析,代码编程;张金负责代码复审,代码测试计划。

     

    思路:我和搭档张金一起分析题目,统一解决方法。首先定义2个数组(假设有n个数),关系如下:

    max[0]为{arr[0]、arr[0]+arr[1]、...、arr[0]+arr[1]+...+arr[n-1]+arr[n]}中的最大值;

    max[1]为{arr[1]、arr[1]+arr[2]、...、arr[1]+arr[2]+...+arr[n-1]+arr[n]}中的最大值;

    ......

    max[n-1]为{arr[n-1]、arr[n-1]+arr[n]}中的最大值;

    max[n]为{arr[n]}中的最大值(即max[n]=arr[n])。

    再比较max数组,从中找到最大值。

     

    源代码:

    //数组长度为5。

     1 #include<iostream.h>
     2 
     3 int main()
     4 
     5 {
     6 
     7     int arr[5];
     8 
     9     int i,j;
    10 
    11     int max[5];
    12 
    13     cout<<"input array (five numbers):"<<endl;
    14 
    15     for(i=0;i<5;i++)
    16 
    17     {
    18 
    19         cin>>arr[i];
    20 
    21     }
    22 
    23     for(i=0;i<5;i++)
    24 
    25     {
    26 
    27         max[i]=arr[i];
    28 
    29     }
    30 
    31     for(j=0;j<4;j++)
    32 
    33     {
    34 
    35         for(i=j+1;i<5;i++)
    36 
    37         {
    38 
    39             arr[j]=arr[j]+arr[i];
    40 
    41             if(max[j]<arr[j])
    42 
    43             {
    44 
    45             max[j]=arr[j];
    46 
    47             }
    48 
    49         }
    50 
    51     }
    52 
    53     for(i=0;i<5;i++)
    54 
    55     {
    56 
    57         if(max[0]<max[i])
    58 
    59             max[0]=max[i];
    60 
    61     }
    62 
    63     cout<<"ADDmax="<<max[0];
    64 
    65     return 0;
    66 
    67 }

     

    运行结果:

     

    总结体会:

      这次结对开发进行的很顺利,我们在课间就完成了作业,在过程中收获了很多。首先是在讨论思路时,需要两个人的大致方向是一致的,虽然这次做的程序是比较简单的,但在做大项目时,有很多模块时,这点应该就很重要;其次是在实现功能上,虽然我是主要负责代码编程,但在动手敲键盘之前我们也讨论了实际的解决方法,用什么结构、怎么嵌套...几分钟下来就发现每个人想法也还是不同的,而且每个人对语言的掌握程度、注意和侧重的细节也不同,互相交流可以不断提升编程技能,不断开拓;最后是在编程过程,我们都还比较粗心,两个人可以互相提醒和监督。

       结对开发是以后工作后必不可少的,现在不仅要锻炼自身的编程能力,同时更要注重培养团队合作的能力。

     

  • 相关阅读:
    披萨
    扩展gcd
    LOJ6276 果树
    BZOJ 2038: [2009国家集训队]小Z的袜子(hose) | 莫队
    BZOJ 3052: [wc2013]糖果公园 | 树上莫队
    BZOJ 1878: [SDOI2009]HH的项链 | 莫队
    BZOJ 2453 维护队列 | 分块
    BZOJ 2821: 作诗(Poetize) | 分块
    BZOJ 2653 middle | 主席树
    BZOJ 1901: Zju2112 Dynamic Rankings | 带修改主席树
  • 原文地址:https://www.cnblogs.com/mumulucky/p/4345114.html
Copyright © 2020-2023  润新知