一个整数数组中最大字数组二

返回整数数组中最大子数组的和2

1.题目:

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

2.要求:

1)要求程序必须能处理1000个元素;

2)每个元素都是int32类型的。

3.设计思路:

处理1000个元素时让用户自己输入想要的数组长度,看看运行时出处理时间的长短,再在源程序中改善这一问题。

处理大数溢出时,由于随机函数生成的数不算太大,我们尽量让其最终存入数组的元素接近最大范围,进而求和时才可能出现大数溢出的情况。

4.源代码:

1 #include<iostream>

2 #include<stdlib.h>

3 using namespace std;

4 #include <ctime>

5 #include <cstdlib>

6 #define MAX 100000

7 int main()

8 {

9     int k,t=0,o=0;

10     int n=0,m=0;

11     int b[MAX];

12     int a[MAX];

13     cout<<"请输入数组中整数的个数:"<<endl;

14     cin>>k;

15     srand(time(0));

16     for(int i=0;i<k;i++)

17     {

18         a[i]=rand()%100-50;

19         cout<<a[i]<<" ";

20     //    cin>>a[i];

21     }

22

23     for(int l=1;l<k+1;l++)

24     {

25         for(i=0;i<k-l+1;i++)

26         {

27             for(int j=i;j<i+l;j++)

28             {

29                 if(j>k-1)

30                 {

31                     break;

32                 }

33                 else

34                     m=m+a[j];

35             }

36             b[n]=m;

37             m=0;

38             n=n+1;

39         }

40     }

41     int max=b[0];

42     for(i=1;i<n;i++)

43     {

44         if(max<b[i])

45             max=b[i];

46     }

47 /*    for(i=0;i<n;i++)

48     {

49         if(max==b[i])

50         {

51             m=i;

52         }

53     }

54     m=m+1;

55     int r=k;

56     for(int j=0;j<k;j++)

57     {

58         if(m>=r&&r>=0)

59         {

60             m=m-r;

61             t=t+1;

62             r=r-1;

63         }

64         if(m==0&&r>0&&j!=k-1)

65         {

66             m=m+r+1;

67             break;

68         }

69         if(m==0&&r==0&&t==k)

70         {

71             m=m+1;

72             break;

73         }

74     }*/

75     cout<<endl;

76     cout<<"该数组中的最大子数组的和为:"<<max<<endl;

77     /*cout<<"这些数字为:";

78     m=m-1;

79     if(t==0)

80     {

81         t=1;

82     }

83     for(i=m;i<m+t;i++)

84     {

85         cout<<a[i]<<"   ";

86     }

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

88         cout<<b[i]<<" ";*/

89     return 0;

90 }

5.结果截图:

时间: 2024-10-10 14:51:14

一个整数数组中最大字数组二的相关文章

返回一个整数数组中最大字数组的和(一维数组首尾相连)

一.设计思想 总思路:先实现正常数组的所有子数组的和的最大值,再将数组中的元素首尾相接,按照正常数组的判断方法即可. 判断所有子数组的和的最大值:先将最大值和起始值设置为第一个元素,将起始值轮流相加,如果<0,置0把前面弃掉,并在循环中不停与最大值比较,如果大于最大值,将其值给最大值. 将元素中的元素首尾相接:环状与正常数组区别为环状还可以首尾部分成为子数组,将环状截断可以成为正常子数组,即在数组末尾再加一次此数组,让首尾相接. 二.出现的问题 判断数组的所有子数组的和的最大值的时候,算法想不清

一组数组中最大字数组之和

1.随机输入数组 2.求出数组之和a 3.用a与数组第一个数开始做和.如果数字小于a,那么舍弃该数:如果大于a,继续计算a与第一个数与第二个数之和,如果小于a舍弃这两个数,如果大于a,继续计算a与第一个数.第二个数.第三个数之和......直到计算的最后一个数为止. 4.与第3步步骤类似,只是从最后一个数开始计算,到第一个数为止. 5.求出最大子数组,输出该字数组数字,以及之和.

返回一个首尾相接的二维整数数组中最大子数组的和

一.题目:返回一个二维整数数组中最大子数组的和. 二.要求: (1)输入一个二维整形数组,数组里有正数也有负数. (2)二维数组首尾相接,象个一条首尾相接带子一样. (3)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (4)求所有子数组的和的最大值. 三.解题思路: 将两个同样的数组首尾相接合并成一个数组,在用以前求二维数组最大子数组的方法求解 四.源代码: #include<iostream> using namespace std; #include"math

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

题目:返回一个二维整数数组中最大子数组的和.要求:输入一个二维整形数组,数组里有正数也有负数.      二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和.      求所有子数组的和的最大值.要求时间复杂度为O(n). 结对编程要求:两人结对完成编程任务.              一人主要负责程序分析,代码编程.              一人负责代码复审和代码测试计划.              发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照)

返回一个二维整数数组中最大子数组的和(头尾相接)

1.题目. 题目:返回一个二维整数数组中最大子数组的和.要求:输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). 2.设计思想. 分别求出每一行的最大子矩阵,然后再两行相加,求出最大子矩阵,一直到所有的行相加,求出最大子矩阵.比较其中最大的子矩阵值,找出最大的. 3.代码. #include<iostream> using namespace

返回一个二维整数数组中最大子数组的和2

题目:返回一个二维整数数组中最大子数组的和2 要求:输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值. 思路: 代码: 截图: 总结:

结对开发之《返回一个二维整数数组中最大子数组的和》

一.题目要求 题目:返回一个二维整数数组中最大子数组的和. 要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n). 结对编程要求: 两人结对完成编程任务. 一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划.发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照).(截止到周四4月9日24:00) 二.编程思路 我们的思路比较简单,采用的是将

《返回一个二维整数数组中最大子数组的和》

一.题目要求 题目:返回一个二维整数数组中最大子数组的和. 要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大 两人结对完成编程任务.一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划. 发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照).(截止到周四4月21日24:00) 二.设计思路 本次实验设计思路非常简单,就

返回一个二维整数数组中最大子数组的和(圆柱形)

题目: 返回一个二维整数数组中最大子数组的和 要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值. 组员: 陈晨:负责代码复审和代码测试计划 王颖瑞:负责程序分析,代码编程 思路: 本次的任务是二维数组的环状求最大子数组,结合前两次的开发经验我们把一维数组环状的思路继续在二维数组中使用,首先输入数组时令数组的列扩大一倍,也就是令数组后的数组长度的值与前边的数