数组练习2

 结对开发:张哲  张晓菲

题目:返回一个数组中子数组最大和,数组可以首尾相连。

一、实验思路

   本次实验在第一次的基础上增加了一些难度,数组可以首尾相连组成一个环,我们两个经过思考和讨论后得到一个方法:

1、在对环的特殊性研究后,我们可以将一个环拆成一个链,即:5 -1 3 3 拆成5 -1 3 3 5 -1 3 这个环每次从开始位置四个四个组队,即5 -1 3 3 、-1 3 3 5、3 3 5 -1、3 5 -1 3 ,然后利用for循环,计算其最大子数组和,这样即可以达到一个环所呈现的结果。

2、对于记录位置这个问题,我们定义了cstart start end三个变量来表示,cstart记录每次循环最大子数组和的位置,start记录最终最大子数组和的位置,end则记录最大子数组和终点的位置。

二、程序代码

 1 //返回一个整数数组中最大子数组的和
 2 //有正数、有负数、数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和、将数组首尾相连、返回最大子数组的位置
 3 //张哲、张晓菲 2016/3/22
 4 
 5 #include<iostream>
 6 using namespace std;
 7 
 8 #define N 10000
 9 int main()
10 {
11     int num, arr[N];
12     int sum = 0;
13     cout << "请输入数组元素个数:";
14     cin >> num;
15     cout << "请输入数组元素的值:";
16     for (int i = 0; i<num; i++)//输入环状数组的元素值
17     {
18         cin >> arr[i];
19     }
20     for (int i = num; i<(2 * num - 1); i++)//将环抻直,例如环状数组值原先为[A,B,C,D],那么抻直之后为[A,B,C,D,A,B,C]
21     {
22         arr[i] = arr[i%num];
23     }
24     cout << "环抻直之后的数组相当于:" << endl;
25     for (int i = 0; i<(2 * num - 1); i++)
26     {
27         cout << arr[i] << " ";
28     }
29     cout << endl;
30 
31     int max = arr[0];
32     int end, start, cstart;//end为结束位置 start为起始位置
33 
34     //求子数组最大和
35     for (int j = 0; j<num; j++)
36     {
37         sum = 0;
38         for (int i = j; i<j + num; i++)
39         {
40             if (sum <= 0)
41             {
42                 sum = arr[i];
43                 cstart = i;//当前最大子数组的起始位置
44             }
45             else
46                 sum = sum + arr[i];
47             if (sum>max)
48             {
49                 max = sum;
50                 start = cstart;
51                 end = i;//最大子数组的终止位置
52             }
53         }
54     }
55     cout << "子数组和的最大值为:" << max << endl;
56     cout << "最大子数组的起始位置为环抻直后的第" << start + 1 << "个元素,结束位置为环抻直后的第" << end+1 << "个元素。" << endl;
57     return 0;
58 }

三、实验结果截图

结果中给出了拆开后的数组,数组的位置从1开始,数组位置记录的是拆开后的位置。

四、时间记录日志

日期开始时间结束时间中断时间(min)净时间(min)活动备注

3月21号

星期一

14:0015:5010(课间)100听课软件工程
 20:00 22:00 120编程一维数组1

3月22号

星期二

19:5020:40050编程一维数组1

3月23号

星期三

15:0014:0010(休息)50看书构建之法
 20:0021:150(休息)75编程一维数组1

3月24号

星期四

14:0015:5010(课间)100听课软件工程
 20:3022:0010(休息)80编程一维数组2

3月25号

星期五

16:3017:000(休息)70编程一维数组2
 21:0022:00060编程一维数组2

3月26号

星期六

9:0010:00080编程

一维数组2程序进行

修改、写博客

转载于:https://www.cnblogs.com/zz0906/p/5322030.html

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

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

相关文章

Java 8中最快的垃圾收集器是什么?

OpenJDK 8具有几种垃圾收集器算法&#xff0c;例如Parallel GC &#xff0c; CMS和G1 。 哪一个最快&#xff1f; 如果默认的GC从Java 8中的并行GC更改为Java 9中的G1&#xff08;当前建议&#xff09;&#xff0c;将会发生什么&#xff1f; 让我们对其进行基准测试。 基准方法…

【粉丝需求】如何把一个前端网页都搞下来?

一般比较简单的就是展示型网站,这类网站 最好仿制,如果带后台的不太好获取完整后台代码,但是搞一下前端代码还是可以的。一般前端不管用什么框架,基础元素由html+css+javaScript组成。 声明:本文仅仅提供一种思路,如有对站点侵权的地方,请联系博主删除。 我用的是HB-X,…

九、其他常用命令

一、挂载命令 可以理解为windows当中的分配盘符操作 1.查询与自动挂载 [rootlocalhost ~]# mount #查询系统中已经挂载的设备 [rootlocalhost ~]# mount –a #依据配置文件/etc/fstab的内容&#xff0c;自动挂载一遍 只要按照对应的格式将相应的分区添加到list中&#xff0c;那…

【ECharts系列|01入门】 从入门到天黑【入门级教程实战】

ECharts 是一个使用 JavaScript 实现的开源可视化库&#xff0c;涵盖各行业图表&#xff0c;满足各种需求。 ECharts 遵循 Apache-2.0 开源协议&#xff0c;免费商用。 ECharts 兼容当前绝大部分浏览器&#xff08;IE8/9/10/11&#xff0c;Chrome&#xff0c;Firefox&#xff0…

Java开发人员应了解的JVM流行语

本文将与您分享一些JVM“流行语”&#xff0c;它们对于Java开发人员在执行任何JVM性能和垃圾回收调优之前理解和记住非常重要。 本文末尾还提供了一些技巧&#xff0c;包括一些高级性能调优最佳实践。 将来的文章中将探讨有关Oracle HotSpot并发GC收集器&#xff08;例如CMS和G…

【ECharts系列|02可视化大屏】 舆情分析,人口分析及警情警力活动情况的实现【上篇】

简介&#xff1a;ECharts实现可视化大屏展示&#xff0c;包含人口分析&#xff0c;警情警力分析多张效果图&#xff0c; 完整的htmlcssjsimg:https://download.csdn.net/download/weixin_41937552/16361615 项目结构&#xff1a; activity.html <!doctype html> <met…

spring rmi_Spring远程支持和开发RMI服务

spring rmiSpring远程支持简化了启用远程服务的开发。 当前&#xff0c;Spring支持以下远程技术&#xff1a;远程方法调用&#xff08;RMI&#xff09;&#xff0c;HTTP调用程序&#xff0c;Hessian&#xff0c;Burlap&#xff0c;JAX-RPC&#xff0c;JAX-WS和JMS。 远程方法调…

用Paint Tool SAI绘制漫画

漫画绘图软件 Paint Tool SAI是一个来自日本的小巧的漫画辅助绘图软件&#xff0c;只有11M大小。 这个没有任何现成的模板和组件&#xff0c;只能自己一笔一笔的话&#xff0c;画笔、图层等功能与Photoshop类似&#xff0c;但没有PS其它大量功能&#xff0c;因此操作更加便捷&a…

【ECharts系列|02可视化大屏】 舆情分析,人口分析及警情警力活动情况的实现【下篇】

简介&#xff1a;ECharts实现可视化大屏展示&#xff0c;包含人口分析&#xff0c;警情警力分析多张效果图&#xff0c; 完整的htmlcssjsimg:https://download.csdn.net/download/weixin_41937552/16361615 上一篇&#xff1a;【ECharts系列|02可视化大屏】 舆情分析&#xff0…

在WildFly上将JPA和CDI Bean与骆驼一起使用

我并没有真正为此计划&#xff0c;但是在一个免费的会议月份中&#xff0c;我有机会进行了一些深入的探讨&#xff0c;并向您展示了WildFly-Camel子系统提供的WildFly魔术上的更多Camel。 商业背景 该演示来自Christina Lin在JBoss Demo-Central上的演示 。 她演示了Camel中Fi…

C#开发微信公众平台-就这么简单(附Demo)(转)

原文&#xff1a;http://www.cnblogs.com/xishuai/p/3625859.html 写在前面 阅读目录&#xff1a; 服务号和订阅号URL配置创建菜单查询、删除菜单接受消息发送消息&#xff08;图文、菜单事件响应&#xff09;示例Demo下载后记最近公司在做微信开发&#xff0c;其实就是接口开发…

【ECharts系列|03可视化大屏】大数据管理平台实时展示

基于echats实现可视化大数据管理平台实时展示。 完整htmlcssjsjsonfontvideo:https://download.csdn.net/download/weixin_41937552/16362433 项目结构&#xff1a; index.html <!DOCTYPE html> <html lang"en"> <head><link href"css/Bi…

【ECharts系列|04可视化大屏】ECharts可视化经典案例总结

收集整理一些ECharts实现可视化大屏效果的一些经典案例&#xff0c;方便在工作的时候及时的响应客户&#xff0c;及修改展示&#xff0c;根据业务需求在此基础修改即可。 第一篇为Echarts入门文档&#xff0c;如果没有Echarts基础&#xff0c;理解起来比较费劲&#xff0c;这个…

云服务器带宽如何计算,云服务器怎么选择带宽

原标题&#xff1a;云服务器怎么选择带宽很多企业或站长在购买云服务器时&#xff0c;对带宽不是很了解。他们认为硬件配置高就行&#xff0c;访问速度就会快。其实访问快慢主要是带宽大小来决定&#xff0c;硬件主要是用来运算的&#xff0c;带宽是用来传输数据的。服务器处理…

spring aop实践_使用Spring AOP实现活动记录模式

spring aop实践在课堂设计过程中&#xff0c;我们应就每个班级的职责分配做出决定。 如果我们选择的不错&#xff0c;系统将更易于理解&#xff0c;维护和扩展。 我们几乎所有的项目都有一个持久层&#xff0c;即关系数据库&#xff0c;文档存储或仅XML文件。 通常&#xff0c;…

部署promethues采集kubelet数据报错:server returned HTTP status 403 Forbidden

背景 笔者尝试部署手动部署promethues去采集kubelet的node节点数据信息时报错 笔者的promethus的配置文件和promthues的clusterrole配置如下所示&#xff1a; apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:name: prometheus rules: - apiGroups: […

2k16显示miui停止服务器,MIUI11停止内测,MIUI12真的来了,与小米MIX4同天发布,与ios13一样流畅丝滑...

原标题&#xff1a;MIUI11停止内测&#xff0c;MIUI12真的来了&#xff0c;与小米MIX4同天发布&#xff0c;与ios13一样流畅丝滑根据miui官方给出的最新公告&#xff0c;现在miui11最后一个开发版基本停止内测&#xff0c;并称“永远相信美好的事情即将发生”&#xff0c;可以确…

设计之路:如何进行软件需求分析?

1、需求分析的重要性 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 通常&#xff0c;软件生存周期包括可行性分析与开发项计划、需求分析、设计&#xff08;概要设计和详细设计&#xff09;、编码、测试、维护等活动。 常用的三种软件生命周期&a…

wadl 生成java_在Spring MVC REST应用程序中自动生成WADL

wadl 生成java上一次我们学习了WADL的基础知识 。 语言本身并没有那么有趣&#xff0c;只写了一篇有关它的文章&#xff0c;但是本文的标题揭示了为什么我们需要这些知识。 JSR 311的许多实现&#xff1a;JAX-RS&#xff1a;RESTful Web服务的Java API提供了开箱即用的运行时WA…

安卓应用和ios应用下载地址生成一个统一二维码

前言&#xff1a;这个需要自己的应用已经上线到腾讯应用宝、APPStore.终极解决办法腾讯应用宝「微下载 」&#xff0c;是目前生成二合一APP推广二维码的最佳方式。原因如下1. 微信仅支持应用宝「微下载」&#xff0c;才能直接下载APP● 微信拥有11亿用户量&#xff0c;“扫一扫…