结对项目——可循环的最大子数组
求循环数组的最大子数组的和
一、程序要求
1、输入一个整数数组,数组中有正数也有负数;
2、数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和;
3、如果数组A[0].......A[j-1]首尾相邻,允许A[i-1],......A[n-1],A[0].......A[j-1]之和最大;
4、同时返回最大子数组的位置。
二、程序设计思想
此次要求的是求数组中间的某一段和最大,关键是求数组首尾相接的某一段元素的和最大,中间部分的和小于0,所以求出数组总和,然后减去这部分元素的和。求这部分的和的时候,将数组求反,用上次的方法求出就行,再加上数组的总和,即为所求。
三、源程序
//李俏、张莹荧,2016.3.26 //求整数数组的最大子数组的和,数组可循环 #include<iostream> #include<string.h> #include<stdio.h> using namespace std;typedef long long LL;LL maxsum(int a[], int n) {int i;int start=0,end=0;LL maxsum = 0;LL sum = 0;for(i=0; i<n; i++){if(sum < 0) {sum = a[i];//start= i + 1; }else {sum += a[i]; }if(sum>maxsum){maxsum = sum; //end = i; }//maxsum = max(maxsum, sum); }//cout<<"起始位置:"<<start<<",终止位置:"<<end;return maxsum; }int main() {int i;int arrlength;int arr[1000];LL sum = 0,sum1,sum2;cout<<"请输入数组长度:";cin>>arrlength;if(arr==NULL||arrlength==0){//exit(1);return 0;}cout<<"请输入数组元素:";for(i=0;i<arrlength;i++){cin>>arr[i];sum += arr[i];}sum1 = maxsum(arr, arrlength);for(int i=0; i<arrlength; i++)//每个数求反 {arr[i] = -arr[i];} sum2 = maxsum(arr, arrlength);//求出原数组中和小于0的元素的和 sum = max(sum + sum2, sum1);//sum+sum2数组两头的元素的和 cout<<"最大子数组的和为:"<<sum<<endl;return 0; }
四、结果截图
五、项目计划日志
周活动总结表
姓名:李俏 日期:2016年3月19日
日期 任务 | 听课 | 编写程序 | 阅读课本 | 准备考试 | 日总计 | ||
周日(3.20) |
30 | 30 | 60 | ||||
周一 |
120 | 30 | 30 | 180 | |||
周二 |
30 | 30 | 60 | ||||
周三 |
30 | 30 | 60 | ||||
周四 |
120 | 30 | 150 | ||||
周五 |
180 | 30 | 210 | ||||
周六 |
60 | 30 | 120 | ||||
周总结 |
240 | 360 |
210 |
810 |
六、时间记录表:
学生: 李 俏 日期 :2016年3月12日
教师: 王建民 课程 :软件工程
日期 |
开始时间 |
结束时间 |
中断时间 |
净时间 |
活动 |
备注 |
3.21 |
16:30 |
17:00 |
无 |
30 |
编写程序 |
作业 |
20:10 |
20:40 |
无 |
30 |
阅读 |
作业 |
|
3.22 |
19:10 |
19:50 |
10 |
30 |
编写程序 |
作业 |
20:00 |
20:30 |
无 |
30 |
阅读 |
作业 |
|
3.23 |
14:30 |
15:30 |
30min |
30 |
编写程序 |
作业 |
20:00 |
20:30 |
无 |
30 |
阅读 |
作业 |
|
3.24 |
18:50 |
19:20 |
无 |
30 |
编写程序 |
作业 |
20:00 |
20:30 |
无 |
30 |
阅读 |
作业 |
|
3.25 |
13:20 |
18:00 |
100 |
180 |
编写程序 |
作业 |
21:10 |
21:40 |
无 |
30 |
阅读 |
作业 |
|
3.26 |
12:00 |
13:30 |
30min |
60 |
编写程序 |
作业 |
七、缺陷记录日志:
学生 李俏,张莹荧
日期 2016年3月25日
教员 王建民
程序号 2
日期 | 编号 | 类型 | 引入阶段 | 排除阶段 | 修复时间 | 修复缺陷 |
3.26 | 1 | 函数 | 设计 | 编译 | 15min | |
描述:求最大子数组的和的函数封装不恰当 。 | ||||||
3.26 | 2 | 结果 | 编码 | 编译 | 15min | |
描述:没有考虑好最大子数组结果与其他元素的结果的关系 。 | ||||||
3.27 | 3 | 算法 | 编码 | 未 | ||
描述:无法返回位置。 |
八、工作照片
小伙伴:张莹荧(http://www.cnblogs.com/zhyying/)
转载于:https://www.cnblogs.com/Aliqiao/p/5324443.html
结对项目——可循环的最大子数组相关推荐
- 结对项目——最大子数组
求数组中最大子数组的和 一.程序要求 1.返回一个整数数组中最大子数组的和: 2.输入一个整数数组,数组中有正数也有负数: 3.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 4.求 ...
- 结对开发4----最大子数组(大数溢出)
结对成员:范德一,赵永恒 一.题目: 返回一个整数数组中最大子数组的和. 二.要求: 要求程序必须能处理1000 个元素: 每个元素是int32 类型的: 输入一个整形数组,数组里有正数也有负数. 数 ...
- 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)
一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...
- 结对开发 随机产生数组并求最大子数组的和
一.题目 返回一个整数数组中最大子数组的和. 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为O( ...
- 返回一个二维整数数组中最大子数组的和(二人结对)
题目:返回一个二维整数数组中最大子数组的和 要求:1.输入一个二维整型数组,数组里有正数也有负数. 2.二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值. ...
- 结对开发——一维数组最大子数组判断溢出
一 题目 求一维数组最大子数组和 要求:1000个数以上,整数 二.设计思路 最大子数组很好找到,但是子数组和的溢出问题很难解决. 经过不断的思考,我得出了结论: 溢出是程程序设计者设计时的不足所带来 ...
- 结对开发2(求二维数组的最大子数组和)
一,题目要求: 输入一个二维数组,求出此二维数组的最大子数组和. 二,设计思路: 利用for循环进行遍历,求出数组中每一个子数组的和,最终求出这些子数组的最大的一个值.程序中利用了调用函数,被调函数分 ...
- 求二维整数数组中最大子数组的和(结对作业)
题目:返回一个二维整数数组中最大子数组的和 要求:(1)输入一个二维整形数组,数组里有正数也有负数. (2)二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. (3)求所有子数组的和最大 ...
- 结对开发--求二维数组的最大子数组
小组成员:信1201-1班 黄亚萍 信1201-1班 袁亚姣 一.题目要求 程序要使用的数组放在一个叫 input.txt 的文件中, 文件格式是: 数组的行数, 数组的列数, 每一行的元素, ...
最新文章
- 用Swift实现一款天气预报APP(三)
- 华为p4支持鸿蒙功能吗_吹过的牛都一步一步给实现了!明年华为手机支持升级鸿蒙系统!...
- 小程序 数据缓存
- PAT甲题题解-1128. N Queens Puzzle (20)-做了一个假的n皇后问题
- html 跟随鼠标移动线条,canvas跟随鼠标移动的随机线条
- 面试不谈钱,难道要我跟你谈恋爱?真会扯
- boost::filesystem 库的简单使用
- .NET正则基础之——平衡组
- Linux Shell编程笔记10 Shell数组的补充
- SpringBoot、mybatis、Druid结合使用存储emoji图标
- CentOS下ELK基于ElastAlert实现日志的微信报警
- springMVC的controller单例和多例下成员变量的问题
- 创建 Agg 静态链接库
- css权重机制,CSS权重及其计算
- 目标建立——SMART法则
- 黑苹果成功引导到安装界面,USB鼠标无法使用的解决办法
- 制作启动U盘重装系统
- 搜狗搜索图片查看器调用帮助
- 基于MATLAB二分法求解一元二次方程的根
- OpenPLC61850: An IEC 61850 MMS compatible open source PLC for smart grid research
热门文章
- 现在计算机怎样读硬盘端口,组装电脑之硬盘识别篇
- MySQL:Illegal mix of collations (utf8_general_ci,COERCIBLE) and (gbk_chinese_ci,IMPLICIT) for operat
- 【已解决】SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.SLF4J: Defaulting to no-operat
- Android 拼音转换工具PinyinUtils
- php银行卡号姓名,PHP实现根据银行卡号判断银行_PHP
- fullpage的使用方法及配置项 (慕课网视频总结)
- python爬取微博数据词云_用Python爬取微博数据生成词云图片
- 288. Unique Word Abbreviation
- 操作系统:操作系统内核是什么?
- android和harmonyos对比,HarmonyOS真的是安卓换壳吗?它究竟是一个怎样的系统?