题目:在原有的一位数组上进行扩展,求首尾相连的最大子数组的和:

要求: 输入一个一维整形数组,数组里有正数也有负数。

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

求所有子数组的和的最大值。

结对编程要求: 两人结对完成编程任务。 一人主要负责程序分析,代码编程。

一人负责代码复审和代码测试计划。

发表一篇博客文章讲述两人合作中的过程、体会以及如何解决冲突(附结对开发的工作照)。

结对开发过程:

这次的编程开发是基于上次的以为数组,我和我的搭档@快乐的小菜鸟开始了认真的讨论,再结合课堂上的同学讨论,如何能在一维数组原有的基础上,加上首尾相连这个条件,同时降低时间复杂度,这种方法的大概思想是:遍历数组里面的每一个数将第一个数变为最后一个数,具体算法 a[i-1]=a[i],这样又变成了一个新的一维数组,输出每个数组的最大子数组和,然后比较每个输出的和,找出最大的数:

具体代码:

#include <iostream.h>  int maxSum(int* a, int n)  //定义一个求一维数组的最大子数组和的方法
{  int sum=0;  int b=0;  for(int i=0; i<n; i++)  {  if(b<0)           b=a[i];  else  b+=a[i];  if(sum<b)  sum=b;  }  return sum;
}  int main()
{   int n,temp,b;int  sum=0;int i;int a1,a2;cout<<"请输入数组的元素个数: "<<endl;cin>>n;cout<<"请输入数组的元素: "<<endl;int *a=new int[n];for( i=0;i<n;i++){cin>>a[i];}cout<<"此首尾相连的数组中最大子数组的和有以下几种可能:"<<endl;cout<<"第1种排列方式:"<<endl;for( i=0;i<n;i++){cout<<a[i]<<"  ";}cout<<"最大子数组和为:"<<maxSum(a,n)<<endl;a1=maxSum(a,n);for(b=1;b<n;b++){temp=a[0];for(i=1;i<=n;i++){  a[i-1]=a[i];}a[n-1]=temp;cout<<"第"<<b+1<<"种排列方式:"<<endl;for( i=0;i<n;i++){cout<<a[i]<<"  ";}cout<<"最大子数组和为:"<<maxSum(a,n)<<endl;if(maxSum(a,n)>=sum){sum=maxSum(a,n);}} a2=sum;cout<<endl;if(a1>=a2){cout<<"综上,最大的子数组和为:"<<a1<<endl;}else{cout<<"综上,最大的子数组和为:"<<a2<<endl;}return 0;
}

  

截图:

实验感想:

这次感觉题目算是比较简单,想通了其中的关键算法核心,就是a[i-1]=a[i],只不过算法复杂度可能不符合老师的要求!

结对伙伴截图:

转载于:https://www.cnblogs.com/TSbj/p/4378707.html

首尾相连的一位数组最大子数组和相关推荐

  1. 环状二维数组最大子数组求和

    题目:返回一个二维整数数组中最大子数组的和.要求:输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样. n数组中连续的一个或多个整数组成一个子数组,每个子数组都有一 ...

  2. 求一个二维整数数组最大子数组之和,时间复杂度为N^2

    本随笔只由于时间原因,我就只写写思想了   二维数组最大子数组之和,可以  引用  一维最大子数组之和 的思想 一维最大子数组之和 的思想,在本博客上有,这里就不做多的介绍了 我们有一个最初的二维数组 ...

  3. 二维数组最大子数组和

    一.实验题目 求一个二维数组中和最大的子数组. 二.实验思路 基于我们第一次合作时求的一位数组最大子数组,加上一层循环来遍历二维数组中的所有子矩阵的情况. 第一步:先利用上次的方法求每一行的情况,将每 ...

  4. 编程之美2.15 二维数组最大子数组的和(数组下标从(1,1)开始)

          首先,我们看到这篇文章的题目,我们就会想到之前的那个题目 -- 连续子数组最大和问题.这个问题无疑就是把原问题扩展到二维的情况.       想起来这个问题也不是很难,我们可以求解一维矩阵 ...

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

     要求: 1,输入一个二维整形数组,数组里有正数也有负数. 2,二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和, 3,求所有子数组的和的最大值. 设计思路: 参照一维整数数组求解最大子 ...

  6. 求首位相连一维数组最大子数组的和

    结对成员: 朱少辉:主要负责代码编写 侯涛亮:主要负责程序测试 题目:一个首尾相接的一维整型数组,其中有正有负,求它的最大子数组并返回它的位置. 思路:在求一维子数组的基础上,先输入一个含有N个数的一 ...

  7. 结对开发——一维数组最大子数组判断溢出

    一 题目 求一维数组最大子数组和 要求:1000个数以上,整数 二.设计思路 最大子数组很好找到,但是子数组和的溢出问题很难解决. 经过不断的思考,我得出了结论: 溢出是程程序设计者设计时的不足所带来 ...

  8. 求二维数组最大子数组

    结对队友:胡康臻.杨寒寒 1.设计思想: 首先定义产生二维数组,定义可输入二维数组行和列,各位数随机产生: 然后进行最大子数组的求和比较,从每行的第一个数为子数组的起点开始进行不同的子数组遍历比较,只 ...

  9. 环形数组最大子数组之和

    题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]--A[j-1]首尾相邻, ...

最新文章

  1. [译]15个关于Chrome的开发必备小技巧
  2. 南京大学与东南大学计算机学院,南京被“严重低估”的1所大学,拥有8个A+学科,无奈校名太普通...
  3. 在wildfly中使用SAML协议连接keycloak
  4. pandas清华镜像_一款可以像操作Excel一样玩Pandas的可视化神器来了!
  5. 三维重建:闭环检测-相机闭环
  6. ACM-ICPC 2019 山东省省赛 C Wandering Robot
  7. oracle 作业已存在,ORA-31634: 作业已存在
  8. 没有在该机执行windows脚本宿主的权限_解决办法
  9. mysql执行程序_Sql在Mysql的执行
  10. 用GlobalMemoryStatus获取系统内存信息
  11. GreenSock GSAP 3.0 最新版 所有内容创建于2020年4月4日
  12. SCI论文图片拼接Tips
  13. 通识2——“视频编码”的相关概念
  14. Android接入TapTap踩坑
  15. Android UI开发神兵利器之设计资源
  16. 沟通:如何用沟通解决80%的工作问题?
  17. 2020支付宝五福AR图
  18. 虚拟服务器与域名怎么解析,服务器和虚拟主机的绑定域名解析
  19. Python Traceback (most recent call last)【StopIteration】
  20. HTML+CSS十分钟实现响应式布局页面,响应式布局实战教程

热门文章

  1. WebMessenger完善后将作为一个开源项目
  2. Tomcat启动特慢之SecureRandom问题解决
  3. Centos7设置网络
  4. EasyStack华丽亮相OpenStack Days China
  5. 订单表的分库分表方案设计(大数据)
  6. 【转】基于Android Fragment功能的例子
  7. Windows 2003 AD升级到 Windows 2008 AD
  8. 王木匠,我服了你一半
  9. Bitcoin Unlimited发布BCH新版客户端1.5.0.0,包括CTOR和CDSV
  10. 企业应用平台移动化发展趋势