C++求数组子数组和的最大值并将该子数组和最大值打印出来
#include <iostream>
using namespace std;
void GetMaxValue(int *pDatas, int len);
void main()
{
int datas1[6] = {1, -2, 3, 5, -3, 2};
//输出子数组最大值为8
//该子数组为:3 5;
GetMaxValue(datas1, 6);
//输出子数组最大值为:9
//该子数组为:3 5 -1 2
int datas2[6] = {0, -2, 3, 5, -1, 2};
GetMaxValue(datas2, 6);
//输出子数组最大值为:-2
//该子数组为: -2
int datas3[6] = {-9, -2, -3, -5, -3};
GetMaxValue(datas3, 5);
int tem;
cin >> tem;
}
void GetMaxValue(int *pDatas, const int len)
{
int max = -1000;
int sum = 0;
int k = 0;
int *result = new int[len];//该数组用于保存结果的子数组集合
int *tem = new int[len];//该数组用于辅助
for(int q = 0; q < len; q++)
{
result[q] = -100;
tem[q] = -100;
}
bool isChanged = false;
for(int i =0; i < len; i++)
{
sum =0;
for(int q =0; q < len; q++)
{
tem[q] = -100;
}
isChanged = false;
for(int j = i; j < len; j++)
{
sum += pDatas[j];
tem[j] = pDatas[j];
if(sum > max)
{
max = sum;
k = j;
isChanged = true;
}
}
if(isChanged)
{
for(int p = k + 1; p < len; p++)
{
tem[p] = -100;
}
for(int q = 0;q < len;q++)
{
result[q] = -100;
}
for(int f =0; f < len; f++)
{
if(tem[f] != -100 )
{
result[f] = tem[f];
}
}
}
}
cout << "子数组和最大值为:" << max << endl;
cout << "该子数组为:" << endl;
for(int i = 0;i < len; i++)
{
if(result[i] != -100)
{
cout << result[i] <<" ";
}
}
cout << endl;
}
转载于:https://www.cnblogs.com/ganquanfu2008/archive/2013/06/13/3133398.html
C++求数组子数组和的最大值并将该子数组和最大值打印出来相关推荐
- 求数组的子数组之和的最大值
一个有N个整数元素的一维数组( A[0], A[1], ... , A[n-2], A[n-1]),子数组之和的最大值是什么?(要求子数组的元素是连续的) 例子:有数组( -2, 5, 3, -6, ...
- 编程之美 2.14求数组的子数组之和的最大值
对于一个有N个元素的数组,a[0]~a[n-1],求子数组最大值. 如:数组A[] = [−2, 1, −3, 4, −1, 2, 1, −5, 4],则连续的子序列[4,−1,2,1]有最大的和6. ...
- 求数组的子数组之和的最大值IV
在之前的基础上又安排了二维数组的,在课上一开始是理解错要求了,简单的以为用循环数组就能解决,但是却忽视了子数组是否能构成矩形,之后课下和同学们讨论,主要是多重遍历,但是我还是没搞明白怎么构成新的二维数 ...
- 笔试算法题(26):顺时针打印矩阵 求数组中数对差的最大值
出题: 输入一个数字矩阵,要求从外向里顺时针打印每一个数字: 分析: 从外向里打印矩阵有多重方法实现,但最重要的是构建合适的状态机,这样才能控制多重不同的操作: 注意有四种打印模式(左右,上下,右左, ...
- python求数组最大值_Python算法与数据结构--求所有子数组的和的最大值
Python算法与数据结构--求所有子数组的和的最大值 玄魂工作室秘书 玄魂工作室 昨天 题目:输入一个整形数组,数组里有正数也有负数.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. ...
- 如何求数组中的最大值或最小值
对于普通的数求大小,我们之前已经做过了,那对于如今的数组,我们该如何求数组中最大的元素呢?我们可以这么想,数组就是一组数,只要,我们在这组数中选取一个值,然后让它依次和其他的数进行大小比较,当它小于其 ...
- 动态规划系列---求数组中两个元素差的最大值
题目 求数组中两个元素差的最大值(后面的元素减去前面的元素):对应实际生活中的股票买卖,找出一只股票走势里面可能的最大收益: 思路 类似于求数组连续和的最大值: 保存最大差值和最小值,遍历数组,如果 ...
- [YTU]_2642 (填空题:类模板---求数组的最大值)
Description 类模板---求数组的最大值 找出一个数组中的元素的最大值,数组大小为10.(用类模板来实现) 数组元素类型作为类模板的参数. 在下面的程序段基础上完成设计,只提交begin到e ...
- C语言求数组中的最大值
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105163865 C ...
- JAVA 求数组中的最大值
package Code411;//求数组的最大值public class CodeArrayMax { public static void main(String[] args) { int ar ...
最新文章
- spark 类标签的稀疏 特征向量
- Blog 081018
- JAVA开发者的Golang快速指南
- mongodb studio 3t 破解无限使用脚本
- oracle 连续5分钟_3-1!10分钟3球杀入前四,连续5个客场大逆转,名字叫曼联
- JavaFX控件ID:设置Label文本内容代码示例
- foxpro mysql_将Visual Foxpro连接到MySql数据库
- 【clickhouse】clickhouse 表引擎 之 AggregatingMergeTree
- mac上Matlab怎么运行不了,解决macOS系统下matlab无法访问中文路径及中文乱码问题...
- php+mysql案例含源码_[源码和文档分享]基于PHP和MYSQL数据库实现的失物招领系统...
- mysql做主从分离后插入更新过慢
- VC++黑客编程收集的源码集合,只有你想不到的
- 关于采购中的PTA——概念如何理解及其计算公式
- protoc protoc-gen-go安装
- 【3分钟秒懂】MCU启动流程详解 基于NXP MPC574xG
- GFlags 使用详解
- 采访Java Collection的作者Joshua Bloch
- 游戏辅助制作核心--植物大战僵尸逆向之植物种植call(七)
- 苹果M1芯片的Mac怎么关闭SIP?M1 mac关闭Sip方法教程!
- 当当CEO李国庆斥资本竞争靠烧钱垄断市场 被海航抛弃的当当怎么了
热门文章
- 功能强大的滚动播放插件JQ-Slide
- 案例展示快做好了(更新)
- python基础===将Flask用于实现Mock-server
- 万达与IBM联手发力公有云市场,为不让马云当首富王健林也是拼了
- [转]优秀Python学习资源收集汇总
- 两台服务器实现会话共享
- 要是想让程序跳转到绝对地址是0x100000去执行
- Android开发技巧——大图裁剪
- $(document).ready、body.Onload()和 $(window).load的区别
- Python 读写文件和file对象(转)