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

结对开发_返回一个整数数组中最大子数组的和。

时间:2015-03-18 01:08:53      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

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

设计思路:

  本次实验设计,把数组长度定在了5,然后定义一个长度为15的数组,依次存入数组子序列的和,然后用for循环比较出最大的一个,题目就得到了解决。由于课堂编程,并未考虑数组成员特别多的话如何实现。

源代码如下:

 1 #include<iostream.h>
 2 int main()
 3 {
 4     int i,a[5],b[15];
 5     for(i=0;i<5;i++)
 6     {
 7         cin>>a[i];
 8     }
 9     for(i=0;i<5;i++)
10         b[i]=a[i];
11     for(i=0;i<4;i++)
12     {
13         b[5+i]=a[i]+a[i+1];
14     }
15     for(i=0;i<3;i++)
16     {
17         b[9+i]=a[i]+a[i+1]+a[i+2];
18     }
19     for(i=0;i<2;i++)
20     {
21         b[12+i]=a[i]+a[i+1]+a[i+2]+a[i+3];
22     }
23     b[14]=a[0]+a[1]+a[2]+a[3]+a[4];
24 
25     int max=b[0];
26     for(i=1;i<15;i++)
27     {
28         if(b[i]>max)
29             max=b[i];
30     }
31     cout<<max<<endl;
32 
33     return 0;
34 }

运行结果如下:
技术分享

技术分享

技术分享

 

  

结队开发实验感想:

  有一个给力的队友是多么重要啊,当我毫无头绪的时候,是队友给了我继续下去的动力,是队友赋予了代码灵魂。

  在本次实验中,我理解错了子数组的含义,是队友把我引导,使我走向了正确的解决问题的方向。

  这就跟《梦断代码》中的大神们开发程序是一样的,把各自的思想融合在一起,从而达到最理想的效果。

  当然了,这是在短时间内想出来的解题思路,还需要不断的进行代码优化,比如数组成员太多了怎么办等等。

 

结对开发_返回一个整数数组中最大子数组的和。

标签:

原文地址:http://www.cnblogs.com/duang/p/4346054.html

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