结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)

一、题目及题目要求

题目:返回一个整数数组中最大子数组的和。
要求:
(1)输入一个整形数组,数组里有正数也有负数。
(2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
(3)如果数组A[0]……A[j-1]首尾相邻,允许A[i-1], …… A[n-1], A[0]……A[j-1]之和最大。
(4)同时返回最大子数组的位置。

二、设计思路

这次的编程开发是基于上次的返回一个整数数组中最大子数组的和( http://www.cnblogs.com/a1397240667/p/5322471.html),我和我的搭档开始了认真的讨论,再结合课堂上的同学讨论,如何能在一维数组原有的基础上,加上首尾相连这个条件,最后得到的方法大概思想是:遍历数组里面的每一个数将第一个数变为最后一个数,这样又变成了一个新的一维数组,输出每个数组的最大子数组和,然后比较每个输出的和,找出最大的数。

三、代码

 1 /*2016.3.24 weilihua fengyutong*/
 2 #include <iostream>  
 3 #include<ctime>
 4 #define Num 10000
 5 using namespace std;   
 6 int DTGH_Sum(int a[],int n) //动态规划法求子段和函数
 7 {
 8     int sum = 0;
 9     int *b = (int *) malloc(n * sizeof(int));    //动态为数组分配空间
10     b[0] = a[0];
11     for(int i = 1; i < n; i++)
12     {
13         if(b[i-1] > 0)
14             b[i] = b[i - 1] + a[i];
15         else
16             b[i] = a[i];
17     }
18     for(int j = 0; j < n; j++)
19     {
20         if(b[j] > sum)
21             sum = b[j];
22     }
23     delete []b;        //释放内存
24     return sum;
25 }
26 int main()   
27 {   int temp,b; 
28     int sum=0; 
29     int i; 
30     int a1,a2; 
31     int a[Num];
32     int length=0;
33     while (length==NULL||length == 0)//如果数组长度为空或零则请重新输入
34      {
35       cout<<"请输入数组长度:";
36       cin>>length;
37      }
38     cout<<"生成随机序列: "<<endl; 
39     srand((unsigned)time(NULL)); 
40     for(i=0;i<length;i++)//产生随机序列
41     {
42         if(rand()%2==0)
43         {
44             a[i]=rand()%100;
45         }
46         else
47         {
48             a[i]=(-1)*rand()%100;
49         }    
50             cout<<a[i]<<" ";    
51     }
52     cout<<endl;    
53     cout<<"此首尾相连的数组中最大子数组的和有以下几种可能:"<<endl; 
54     cout<<"第1种排列方式:"<<endl; 
55     for( i=0;i<length;i++) 
56     {
57         cout<<a[i]<<"  ";
58     } 
59     cout<<"最大子数组和为:"<<DTGH_Sum(a,length)<<endl; 
60     a1=DTGH_Sum(a,length); 
61     for(b=1;b<length;b++) 
62     { 
63         temp=a[0]; 
64     for(i=1;i<=length;i++) 
65      {   
66         a[i-1]=a[i]; //将第一个数变为最后一个数
67               
68      } 
69        a[length-1]=temp; 
70        cout<<""<<b+1<<"种排列方式:"<<endl; 
71        for( i=0;i<length;i++) 
72        {
73            cout<<a[i]<<"  ";
74        } 
75        cout<<"最大子数组和为:"<<DTGH_Sum(a,length)<<endl; 
76        if(DTGH_Sum(a,length)>=sum) 
77        {
78            sum=DTGH_Sum(a,length);
79        } 
80     }  
81       a2=sum; 
82       cout<<endl; 
83       if(a1>=a2) 
84       {
85           cout<<"综上,最大的子数组和为:"<<a1<<endl;
86       } 
87       else
88       {
89           cout<<"综上,最大的子数组和为:"<<a2<<endl;
90       }   
91     return 0;   
92 } 

四、运行截图

当数组长度为1000时:

五、项目计划日志

 

日期&&任务

听课编写程序阅读相关书籍网上查找资料  日总计
周一100 3030160
周二 1203030180
周三 30301070
周四10020 30 150
周五 120  3030180
周六 45301085
周日  200 3010  240
周总计200535180110

1065

 

时间记录日志

3/21

日期开始时间结束时间中断时间净时间活动备注
3/2114:0015:5010100听课软件工程上课
 21:0421:  34030阅读书籍《构建之法》
 22:1022: 4030网上查找资料 
 3/22 18:00 18:30 0 30 阅读书籍《构建之法》 
 19:0021:3020120编写程序结对开发- 子数组之和
 22:  1522:  4530网上查找资料 
3/2319:  2520: 00530编写程序结对开发- 子数组之和
 22:0022: 30030阅读书籍《构建之法》
 22:4022: 50010查找资料 
3/2414:0015:  5010100上课软件工程上课
 18:2618: 5020编写程序结对开发- 子数组之和
  22:00 22:30 0 30 阅读书籍 《构建之法》
3/2514:  0016:  2020120 编写程序结对开发- 子数组之和
 11:2312: 00730网上查找资料 
  21:00 21:30 0 30 阅读书籍 《构建之法》
3/267: 00  7: 30030阅读书籍阅读《构建之法》
 10: 0011: 001545编写程序结对开发- 子数组之和
 9:  45  9: 55 010网上查找资料 
3/278:2012:0020200编写程序结对开发- 子数组之和
 21:0021:10010网上查找资料 
 21:3022:00030阅读书籍《构建之法》

 

缺陷记录日志

 

日期编号类型引入阶段排除阶段修复时间备注
3/24120编码编译4实参与形参类型对应问题
3/24220编码编译1申请了动态空间未释放
3/2520 编码 编译 7当数组长度为0时,无法正常跳出
3/27420编码编译20逻辑有问题,会突然中止
3/27520编码编译1变量未初始化



 

同组伙伴博客:http://www.cnblogs.com/qizhonh/

工作照:

 

转载于:https://www.cnblogs.com/a1397240667/p/5323248.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同意按钮,倒计时10秒,同意按钮变为可提交的

HTML代码&#xff1a; 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2 <html xmlns"http://www.w3.org/1999/xhtml">3 <head>4 <meta h…

前端学习(1850)vue之电商管理系统电商系统vue脚手架安装

1. 先下载node.js&#xff0c;下载地址&#xff1a;https://nodejs.org/en/download/ 找个目录保存&#xff0c;解压下载的文件&#xff0c;然后配置环境变量&#xff0c;将下面的路径配置到环境变量中。 安装node 配置进环境变量 检查是否安装完成 2. npm配置 查看npm配置信息…

使用jquery获取url及url参数的方法及定义JQuery扩展方法

1、jquery获取url很简单&#xff0c;代码如下&#xff1a; window.location.href; 其实只是用到了javascript的基础的window对象&#xff0c;并没有用jquery的知识。 2、jquery获取url参数比较复杂&#xff0c;要用到正则表达式&#xff0c;所以学好javascript正则式多么重要的…

前端学习(1851)vue之电商管理系统电商系统vue创建项目

1输入命令vue-ui 2点击创建 3初始化 4手动配置项目 点击创建项目 创建完成 安装插件 点击安装即可 配置插件 点击依赖 安装依赖

在Google Maps 上点击标签后显示说明

JS如下&#xff1a; (function() { window.onload function() { // Creating an object literal containing the properties // you want to pass to the map var options { zoom: 3, center: new google.maps.LatLng(37.09, -95.71), mapTypeId: google.maps.MapTypeId.RO…

前端学习(1851)vue之电商管理系统电商系统配置ssh

1登录到码云 2设置 生成公钥 3添加公钥 验证成功

前端学习(1852)vue之电商管理系统电商系统托管码云上

1新建仓库 2执行命令 3添加git add . 3git add files 提交

前端学习(1853)vue之电商管理系统电商系统之git安装

1下载安装包 git官网&#xff1a; https://git-scm.com/download/win git阿里镜像&#xff1a; https://npm.taobao.org/mirrors/git-for-windows/ 2安装 基本傻瓜程序 上图红框内的选项是默认勾选的&#xff0c;建议不要动。绿色框1是决定是否在桌面创建快捷方式的。绿色框…

Beaglebone Black教程Beaglebone Black的引脚分配

Beaglebone Black教程Beaglebone Black的引脚分配 Beaglebone Black的引脚分配 绝大多数的微型开发平台都提供了一些称为GPIO的输入输出端口。这些端口可以让你使用软件和硬件来控制一些电子的东西&#xff0c;每个端口都被赋予了一个特定的功能——模拟或数字。大多数的微控制…

iOS Social框架

现在很多应用都内置“社交分享”功能&#xff0c;可以将看到的新闻、博客、广告等内容分享到微博、微信、QQ、空间等&#xff0c;其实从iOS6.0开始苹果官方就内置了Social.framework专门来实现社交分享功能&#xff0c;利用这个框架开发者只需要几句代码就可以实现内容分享。下…

前端学习(1856)vue之电商管理系统电商系统之安装mysql出现mysql报错:Can’t start server: Bind on TCP/IP port: 通常每个套接字地址(协议/网络地址

2020-07-26T11:44:29.778919Z 0 [ERROR] [MY-010262] [Server] Cant start server: Bind on TCP/IP port: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

简单存取款机的实现---控制输入变量的规则

转载于:https://www.cnblogs.com/quanby/p/5335527.html

前端学习(1854)vue之电商管理系统电商系统之安装mysql

本地安装好数据库 source导入命令 source d:/mydb.sql

[原]Jenkins(十二)---jenkins管理员用户无法登陆解决办法Access Denied

/** * lihaibo * 文章内容都是根据自己工作情况实践得出。 *如有错误&#xff0c;请指正 * 版权声明&#xff1a;本博客欢迎转发&#xff0c;但请保留原作者信息! http://www.cnblogs.com/horizonli/p/5337295.html */ 一、问题出现的原因&#xff1a; 如下图&#xff0c;在…

前端学习(1859)vue之电商管理系统电商系统之梳理项目结构

vue ui打开 app.vue <template><div id"app">app根组件</div> </template><script>export default {name: app,} </script><style> #app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: a…