课堂3—结队开发(求数组中子数组和的最大值)

结队开发:林彦汝、张金

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

要求:

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 }

运行结果:

总结体会:

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

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

时间: 2024-12-24 21:13:46

课堂3—结队开发(求数组中子数组和的最大值)的相关文章

求二维数组中子数组和中最大的值,及子数组

求二维数组中子数组和中最大的值,及子数组 个人信息:就读于燕大本科软件工程专业 目前大三; 本人博客:google搜索"cqs_2012"即可; 个人爱好:酷爱数据结构和算法,希望将来从事算法工作为人民作出自己的贡献; 编程语言:C++ ; 编程坏境:Windows 7 专业版 x64; 编程工具:vs2008; 制图工具:office 2010 powerpoint; 硬件信息:7G-3 笔记本; 真言 每次着急写程序,碰到问题就头疼,头疼之后便是满满的收获,付出总有回报. 题目 求

整数数组中子数组的最大值2

设计思路 (1)     首先设置要输入的数字个数和输入的数字: (2)     求数组number[]中子数组的最大值,运用到数组的动态规划,会运用到两个变量进行比较,一个为子数组的和,另一个为子数组和的最大值:maxnum=max{temp,maxnum}:temp和maxnum初始化为第一个数的值: (3)     依次检索每个数的值,每次将值与下一个数的值相加并将值赋值给变量temp:如果temp<0:temp再加上下一个数,temp会更小,此时将temp=0,便于不影响下一个子数组的和

3月31号周二课堂练习:结对开发----求二维数组组成的矩阵中子矩阵的最大值二

一.题目要求 1.1输入一个二维整形数组,数组里有正数也有负数. 1.2二维数组首尾相接,象个一条首尾相接带子一样. 1.3数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 1.4求所有子数组的和的最大值.要求时间复杂度为O(n). 二.结对要求 2.1两人结对完成编程任务. 2.2一人主要负责程序分析,代码编程. 2.3一人负责代码复审和代码测试计划. 2.4发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照). 三.设计过程 上次已经算过二维数组中

结队开发5----首尾相连数组

结队成员:范德一,赵永恒 一.题目 返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]……A[j-1]首尾相邻,允许A[i-1], …… A[n-1], A[0]……A[j-1]之和最大. 同时返回最大子数组的位置. 求所有子数组的和的最大值.要求时间复杂度为O(n). 二.设计思路 我们在上次实验的基础上,通过在原有的循环体的最外边再添加了一个循环条件,这个循环条件是在第一次循

课堂作业:首尾相连求最大子数组

1.设计思想 先将数组环拆解补在原来数组后面,再依次找子数组并相加,更新最大值,并需要将开始的负数舍去从正数开始算起,单独讨论全负情况. 2.源程序 package zishuzu; import java.util.Scanner; public class zsz { public static void main(String[] args) { System.out.println("请输入数字个数:"); Scanner in=new Scanner(System.in);

结对开发——求环形一维数组最大子数组的和

题目:返回一个整数数组中最大子数组的和.要求:(1)输入一个整形数组,数组里有正数也有负数.(2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.(3)如果数组A[0]……A[j-1]首尾相邻,允许A[i-1], …… A[n-1], A[0]……A[j-1]之和最大.(4)同时返回最大子数组的位置.(5)求所有子数组的和的最大值.要求时间复杂度为O(n).一.设计思想 这个问题的最优解一定是以下两种可能.可能一:最优解没有跨过array[n-1]到array[0],即和非环形数

数组中子数组之和最大值(首尾相接)

题目:求一维子数组的最大子数组之和(一维数组首尾相接)并写出子数组 人员: 陈晨:程序复查,结果测试. 王颖瑞:编写代码 思路: 1.求最大子数组之和:对于首尾相接的数组来说,如果计算子数组之和,最多把数组循环两遍,所以我们把数组的长度扩大了一倍(如果要算的数组是5位,那么数组就定义为10位,前半部分和后半部分一样),之后把这个数组进行分组(以要算的数组为5为例).第一个数到第五个数为一组,第二个数与第六个数为一组...第五个数到第九个数.分别把各组的子数组的最大值记录到另一个数组中.比较求出最

算法原型---求数组中子数组和最大的值

num在遍历数组过程中表示遍历到当前位置子数组和的最大值 public class Main { public static void main(String[] args) { int[] a = new int[8]; a[0] = 3; a[1] = -2; a[2] = 1; a[3] = -6; a[4] = 3; a[5] = 2; a[6] = -1; a[7] = 3; System.out.println(res(a)); } public static int res(int

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

要求: 输入整数数组,子数组求和,求子数组的最大值,时间复杂度为0, 设计思想: 随机生成N个整数,规定子数组的个数最大值为3的随机值,先生成一个数n1,在用for循环将前n个数向加赋值给sun[i],再生成一个随机数n2,,将n1到n2 之间的数相加赋值给sun[j++],依次循环,如果n1+n2+······大于N那将最后的和在赋值给sun[j],然后判断sun[]中的最大值,最后输出 public class Test { /** * @param args */ final static