返回一个一维整数数组中最大子数组的和02
一,要求
求所有子数组的和的最大值
二,设计思路
1,先随机生成一个数组,可以限制上下限的,包括正负数的。初始化当前和的值,最大和的值,还有小组起始和结束的位置,。
2,循环加和,每次循环比较当前和,与,最大和的大小,当当前和小于0 的时候舍弃当前和,重新定义起始位置为下一次循环的下标值。循环结束时记录小组起始和结束的位置,然后加和输出。
3,在每一次的循环中加入一个对数组重新排列的操作,就是把第一个位置上的数字放到最后一个位置上,然后其他数字一次放到前面一个的位置上。这样就相当于把数组变成了一个环。
三,代码
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <math.h>
using namespace std;
#define ARYSIZE 4 //数组大小
#define MIN -30
#define MAX 30
void main()
{int arry[ARYSIZE];srand((unsigned)time(NULL));//产生随机种子for(int i=0;i<ARYSIZE;i++){arry[i]=MIN+rand()%(MAX+abs(MIN)+1);cout<<arry[i]<<" ";}cout<<endl;int max=0;//保存最大和int curSum=0;//保存当前和int curStart=0;//当前和的起始位置int start=0;//最大和的起始位置int end=0;//最大和的终止位置int l=0,i,k;for(int i=0;i<ARYSIZE;i++){if(arry[i]<0)l+=1;}if(l==ARYSIZE)//如果Length个数均为负数{max=arry[0];for(i=0;i<ARYSIZE;i++)if(arry[i]>max){max=arry[i];}}else{max=0;for(i=0;i<ARYSIZE;i++){k=arry[0];for(i=0;i<ARYSIZE-1;i++){arry[i]=arry[i+1];}arry[ARYSIZE-1]=k;curSum=0;for(i=0;i<ARYSIZE;i++){if(curSum<0){curSum=0;curStart=i;}curSum=curSum+arry[i];if(curSum>max){max=curSum;start=curStart;end=i;}//当前和被保存为最大值,记录下它的起始位置和结束位置}}}cout<<"和最大的子数组为:"<<endl;if(start<=end){for(i=start;i<=end;i++){cout<<arry[i]<<" ";}cout<<"= "<<max;cout<<endl;}else{for(i=start;i<ARYSIZE;i++){cout<<arry[i]<<" ";}for(i=0;i<end;i++){cout<<arry[i]<<" ";}cout<<"= "<<max;cout<<endl;}}
四,运行截图
五,团队照
转载于:https://www.cnblogs.com/420Rock/p/5378459.html
返回一个一维整数数组中最大子数组的和02相关推荐
- 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)
一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...
- 返回一个二维整数数组中最大子数组的和(二人结对)
题目:返回一个二维整数数组中最大子数组的和 要求:1.输入一个二维整型数组,数组里有正数也有负数. 2.二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值. ...
- 返回一个整数数组中最大子数组的和---环形数组
一.题目要求 题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]--A[j- ...
- 返回一个首尾相接的二维整数数组中最大子数组的和
题目: ·返回一个二维整数数组中最大子数组的和. 要求: ·输入一个二维整形数组,数组里有正数也有负数. ·二维数组首尾相接,象个一条首尾相接带子一样. ·数组中连续的一个或多个整数组成一个子数组,每 ...
- 软件工程结对开发——返回一个整数数组中最大子数组的和(JAVA)
题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为 ...
- 返回一个整数数组中最大子数组的和。
一.要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果数组A[0]--A[j-1]首尾相邻,允许A[i-1],. ...
- 课堂练习:返回一个二维数组中最大子数组的和
1.题目: 返回一个二维数组中最大子数组的和. 2.要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子 ...
- 返回一个循环数组中最大子数组的和
设计思路 首先利用rand()函数随机产生一个一维数组,数组长度通过宏定义来控制.求首尾连接的一维数组的最大子数组的和我的思路是:循环N次(N是数组的长度)依次检测数组的最大子数组的和再比较大小,保留 ...
- 求二维整数数组中最大子数组的和(结对作业)
题目:返回一个二维整数数组中最大子数组的和 要求:(1)输入一个二维整形数组,数组里有正数也有负数. (2)二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. (3)求所有子数组的和最大 ...
- 整数数组中最大子数组求和02
设计思路: 在"整数数组中最大子数组求和01"的基础上完成本次实验. 本次实验的关键在于如何判断结束. 经设计,程序结束条件有两种:1.截取部分有重复:2.循环完整两次. 满足其中 ...
最新文章
- 这是一名南京985AI硕士,CSDN博客专家
- 【南洋理工-CVPR2022】视觉语言模型的条件提示学习
- QWT6.14的编译、配置、使用(Qt Creator5.14.2)
- c++函数返回值与引用
- 【黑科技】在alv中设置字体样式
- python中怎么输入角度_在Python中更正两点之间的角度
- 浅谈javascript递归(白话版)
- oracle中的存储过程教程,oracle 存储过程
- 出现问题Debug Assertion Failed!
- 深度学习中的Normalization总结
- pytorh——Fully-connected
- 《MySQL必知必会》学习笔记——第八章(用通配符过滤)
- java档案管理系统_基于JAVA的简单档案管理系统
- 奥维怎么记录沿线轨迹_奥维地图怎么将已有线路画为轨迹
- 芒果DB:mongodb
- 初用vscode遇到中文乱码问题
- 大学本科基于html5毕业设计题目50例
- 政策频发,全国区块链应用不断涌现 | 产业区块链发展周报
- 基于SVM,KNN,CNN的数字图像识别
- 如何系统的学习linux?