结对开发Ⅴ——循环一维数组求和最大的子数组

一、设计思路

(1)数据的存储结构是链表,最后一个结点的next指向第一个元素的结点;

(2)数据个数为n,则最多有n*(n+(n-1)+...+1)种情况(包括重复);

(3)剩下的部分与二维数组的差不多。

二、源代码

 1 // 一维数组.cpp : Defines the entry point for the console application.
 2 // 袁佩佩 于海洋
 3 
 4 #include "stdafx.h"
 5 #include<iostream.h>
 6 #define num 5
 7 /*链表数据结构*/
 8 typedef struct LNode
 9 {
10     int data;
11     struct LNode *next;
12 }LNode,*LinkList;
13 /*链表的初始化*/
14 void InitList(LinkList &L)
15 {
16     L=new LNode;
17     L->next=NULL;
18 }
19 /*链表数据的插入*/
20 void InsertList(LinkList &L)//建立循环链表
21 {
22     LNode *head,*temp;
23     head=L;
24     cout<<"请输入"<<num<<"个数字:";
25     for(int i=0;i<num;i++)
26     {
27         temp=new LNode;
28         cin>>temp->data;
29         temp->next=NULL;
30         head->next=temp;
31         head=head->next;
32     }
33     head->next=L->next;                //首尾相连,建立循环链表
34 }
35 void output(LinkList L)
36 {
37     for(int i=0;i<num;i++)
38     {
39         cout<<L->next->data<<" ";
40         L=L->next;
41     }
42 }
43 int main( )
44 {
45     int max,sum,flag=0;                //sum是字数组的和,max是最大的子数组的和
46     int ordern=0,orderx=0;
47     LinkList L;
48     LNode *temp,*temp1,*temp2,*head;
49     InitList(L);
50     InsertList(L);                    //由用户往链表中插入数据
51     temp=L->next;
52     max=L->next->data;                //max初值是链表中第一个数
53     for(int i=0;i<num;i++,temp=temp->next)
54     {
55         temp2=temp;
56         for(int j=0;j<num;j++,temp2=temp2->next)
57         {
58             for(int k=j;k<num;k++)
59             {
60                 sum=0;
61                 temp1=temp2;
62                 for(int h=j;h<=k;h++,temp1=temp1->next)
63                 {
64                      sum=sum+temp1->data;
65                 }
66                  if(max<sum)        //将最大值赋给max,并且保存当时的序号 
67                  {
68                      max=sum;
69                      ordern=j;
70                      orderx=k;
71                      head=temp;
72                      flag=i;        //用来求取最大值的时候的链表的情况
73                  }
74             }
75         }
76     }
77     temp=L->next;
78     cout<<"最大字数组是:";
79     for(i=0;i<(flag+ordern);i++)    //找出取得最大值的时候的子数组的第一个数
80     {
81         temp=temp->next;
82     }
83     for(int j=0;j<(orderx-ordern+1);j++,temp=temp->next)//将取得最大和的子数组元素输出
84     {
85         cout<<temp->data<<"  ";
86     }
87     cout<<endl<<"最大子数组的和是:"<<max<<endl;;
88 
89     return 0;
90 }

 

三、运行截图

四、心得体会

  这次最大的感受就是,我们两个都有各自的思路想法,都想向对方阐述自己的想法,导致无法很好地接受倾听对方的声音。我觉得他的方法浪费内存空间,他认为他的查找过程清晰明了。最终还是于海洋同学妥协了,采用的是我的思路,用循环链表。开发过程还是像上两次差不多,个人有个人的优缺点,可以相互弥补。调试程序时,也是我俩共同协作排查出了错误。

五、无图无真相

 

转载于:https://www.cnblogs.com/JJJanepp/p/4373412.html

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

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

相关文章

微软 MVP 福利大赏

前言成为微软 MVP 后, 可以获得微软提供的诸多福利。那具体有哪些福利呢&#xff1f;让我们一起来看看。行政表彰信行政表彰信宣布你的 MVP 身份&#xff0c;并恭祝你对技术社区的贡献。同时&#xff0c;概述了 MVP 项目的影响和意义。可以设置为 PDF 下载&#xff0c;也可以选…

canoco5主成分分析步骤_R语言 PCA主成分分析

微信公众号&#xff1a;生信小知识关注可了解更多的教程及生信知识。问题或建议&#xff0c;请公众号留言;R语言 PCA主成分分析前言统计学背景知识协方差相关系数函数总结实例讲解1.载入原始数据2.作主成分分析3.结果解读4.画主成分的碎石图并预测5.PCA结果绘制后记前言PCA分析…

地理术语

1、无霜期:指一年中终霜后至初霜前的一整段时间。在这一期间内,没有霜的出现。农作物的生长期与无霜期有密切关系。无霜期愈长,生长期也愈长。无霜期的长短因地而异,一般纬度、海拔高度愈低,无霜期愈长。 2、返青(turn green):指植物的幼苗移栽或越冬后,由黄色变为绿…

物理专线流量平滑切换

在从传统IDC向云上迁移过程中&#xff0c;物理专线作为连接云上和云下的桥梁&#xff0c;在混合云架构中占有绝对重要的地位。作为基础设施&#xff0c;在伴随业务不断发展的过程当中&#xff0c;也会进行相应的更换升级。本文将介绍在物理专线特定情况下进行流量切换时&#x…

Android之使用PopupWindow让背景变黯但是华为手机出现屏幕一闪一闪问题解决办法

1、问题 我们使用PopupWindow设置背景变黯(代码如下)&#xff0c;但是部分华为手机出现屏幕一闪一闪 //设置背景透明度public void setBackgroundAlpha(float bgAlpha) {WindowManager.LayoutParams lp CurrentActivity.this.getWindow().getAttributes();lp.alpha bgAlpha;…

利用计算机窃听,observer模拟监听器的实现

observer模拟监听器的实现考试吧(Exam8.com) 2008-10-14 08:00:00 评论(0)条学过awt,尤其是swing的就知道&#xff0c;swing中observer模式被大量的使用。比如&#xff0c;button.addActionListener(...)后&#xff0c;一旦你点击button后就能触发相应的事件。很多人一定想知道…

linux桌面版排行2019_新兴的桌面发行版 Septor Linux 发布 2019 版

导读Septor Linux 是一个新兴的桌面 GNU/Linux 发行版&#xff0c;基于 Debian “Testing” 分支&#xff0c;支持以 live 模式启动。其以 Tor 加密网络流量来匿名地访问网络&#xff0c;并搭载了一些常见的日用或匿名性软件。Septor Linux 是日益增多的关注于英特网访问时的匿…

怎么实现动态设置静态文件存储目录?

前言文章名字有点绕口&#xff0c;举例说明一下&#xff1a;多用户使用同一个网站上传文件&#xff0c;但是因为一些原因&#xff0c;文件需要存储到服务器的不同目录下。比如用户 A 对应 c:\abc&#xff0c;用户 B 对应 d:\xyz\123。并且&#xff0c;文件需要以静态文件方式提…

编写函数判断一个数是否是回文数_程序员面试金典 - 面试题 01.04. 回文排列

题目难度: 简单原题链接 题目描述给定一个字符串&#xff0c;编写一个函数判定其是否为某个回文串的排列之一。回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。回文串不一定是字典当中的单词。示例 1&#xff1a;输入&#xff1a;"tactcoa" 输出…

ArcGIS地理坐标系与投影坐标系

地理坐标:为球面坐标。 参考平面地是 椭球面,坐标单位:经纬度 大地坐标:为平面坐标。参考平面地是 水平面,坐标单位:米、千米等 地理坐标转换到大地坐标的过程可理解为投影。

js去除重复数值

var c[2,4,3,5,2,2,2],a {},i 0;for(;i<c.length;i){a[c[i]] 1 //利用对象名称不能重复的特性来去重}c[];for(var g in a){c.push(g-0);}console.log(c);转载于:https://www.cnblogs.com/xupeiyu/p/4373871.html

ubuntu之sudo apt-get update提示Could not connect to 127.0.0.1:8081 (127.0.0.1)解决办法

1、问题 由于要使用Git,需要执行 sudo apt-get install git 但是执行之前我需要先 sudo apt-get update 麻痹的,当我执行这个的时候错误提示如下 Could not connect to 127.0.0.1:8081 (127.0.0.1). - connect (111: Connection refused)Err:1 http://archive.canonical…

Facebook为Messenger应用添加群组付款功能

Facebook在2015年为Messenger应用添加了好友免费转账功能。这个使得用户可以方便安全地向朋友转账&#xff0c;但是如果用户需要向多人支付&#xff0c;可能会耗费时间。幸运的是&#xff0c;Facebook已经通过其最新的Messenger应用更新解决了这个缺点。扩展付款功能现在允许用…

浙大计算机系可以转专业吗,求教。。浙大转专业容易吗

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼学长考试周忙里偷闲水一会儿贴吧&#xff0c;终于看到有人问这个问题了。作为一名即将跨入大二的浙江汉子&#xff0c;刚好符合你说的跨大类的条件。自我介绍一下&#xff0c;我前不久从理科大类跨到了社科大类(财管)。回想起一年前…

hfss史密斯图_HFSS仿真工程实例 (微波器件).ppt

HFSS仿真工程实例 (微波器件)(3)要结束观看时&#xff0c;可点击Close按钮。 图5-3-18 SolutionData收敛曲线   2)创建报告   ※创建差分对S参数绘图   (1)在AnsoftHFSS窗口中选择菜单项HFSS>Results>CreateReport。   (2)在创建报告(CreateReport)窗口做…

Xamarin.Forms 5.0 项目实战发布!

活动介绍本次活动主要是 .NET Xamarin.Forms 移动端项目开发实战教程, 与以往相同, 本次的收入(其它部分会另行说明) 将用于社区公益活动, 不限于:公益性质的个人/组织机构捐赠开源社区个人/项目捐赠内部投票活动本次的活动费用为:399元, 相对于去年组织的WPF公益实战视频而言,…

unity webgl读写txt文件_VB 读写txt文件

No.7 读写txt文件​mp.weixin.qq.com许多程序需要读写数据&#xff0c;比如商品管理&#xff0c;图书管理&#xff0c;学生档案等&#xff0c;当需要查询的时候&#xff0c;就是读取数据&#xff0c;新增或者更改就需要写数据&#xff0c;VB来讲&#xff0c;中小型的数据一般用…

Android studio导入项目提示The same input jar [*.jar] is specified twice

1 问题 把项目导入Android studio提示用gradle编译提示下面错误 The same input jar [*.jar] is specified twice 2 原因 gradle里面配置了 dependencies {api fileTree(dir: libs, include: *.jar) } 然后在混淆文件proguard.cfg里面进行了如下配置 -libraryjars ./li…

地图投影系列介绍(一)----地球空间模型

1、现实世界和坐标空间的联系 任何空间特征都表示为地球表面的一个特定位置,而位置依赖于既定的坐标系来表示。 通过统一的坐标系和高程系,可以使不同源的GIS数据叠加在一起显示,以及执行空间分析。 2、地球空间模型描述

python学习day2:类与对象

类与对象 一、内置函数 1、int方法&#xff08;1&#xff09;def__add__(self, y): #两数相加""" x.__add__(y) <> xy """ 例&#xff1a; 1 #!/usr/bin/env python 2 x8 3 resultx.__add__(9) 4 print(result) 输出…