#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++求数组子数组和的最大值并将该子数组和最大值打印出来相关推荐

  1. 求数组的子数组之和的最大值

    一个有N个整数元素的一维数组( A[0], A[1], ... , A[n-2], A[n-1]),子数组之和的最大值是什么?(要求子数组的元素是连续的) 例子:有数组( -2, 5, 3, -6, ...

  2. 编程之美 2.14求数组的子数组之和的最大值

    对于一个有N个元素的数组,a[0]~a[n-1],求子数组最大值. 如:数组A[] = [−2, 1, −3, 4, −1, 2, 1, −5, 4],则连续的子序列[4,−1,2,1]有最大的和6. ...

  3. 求数组的子数组之和的最大值IV

    在之前的基础上又安排了二维数组的,在课上一开始是理解错要求了,简单的以为用循环数组就能解决,但是却忽视了子数组是否能构成矩形,之后课下和同学们讨论,主要是多重遍历,但是我还是没搞明白怎么构成新的二维数 ...

  4. 笔试算法题(26):顺时针打印矩阵 求数组中数对差的最大值

    出题: 输入一个数字矩阵,要求从外向里顺时针打印每一个数字: 分析: 从外向里打印矩阵有多重方法实现,但最重要的是构建合适的状态机,这样才能控制多重不同的操作: 注意有四种打印模式(左右,上下,右左, ...

  5. python求数组最大值_Python算法与数据结构--求所有子数组的和的最大值

    Python算法与数据结构--求所有子数组的和的最大值 玄魂工作室秘书 玄魂工作室 昨天 题目:输入一个整形数组,数组里有正数也有负数.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. ...

  6. 如何求数组中的最大值或最小值

    对于普通的数求大小,我们之前已经做过了,那对于如今的数组,我们该如何求数组中最大的元素呢?我们可以这么想,数组就是一组数,只要,我们在这组数中选取一个值,然后让它依次和其他的数进行大小比较,当它小于其 ...

  7. 动态规划系列---求数组中两个元素差的最大值

    题目 求数组中两个元素差的最大值(后面的元素减去前面的元素):对应实际生活中的股票买卖,找出一只股票走势里面可能的最大收益: 思路 类似于求数组连续和的最大值:  保存最大差值和最小值,遍历数组,如果 ...

  8. [YTU]_2642 (填空题:类模板---求数组的最大值)

    Description 类模板---求数组的最大值 找出一个数组中的元素的最大值,数组大小为10.(用类模板来实现) 数组元素类型作为类模板的参数. 在下面的程序段基础上完成设计,只提交begin到e ...

  9. C语言求数组中的最大值

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105163865 C ...

  10. JAVA 求数组中的最大值

    package Code411;//求数组的最大值public class CodeArrayMax { public static void main(String[] args) { int ar ...

最新文章

  1. spark 类标签的稀疏 特征向量
  2. Blog 081018
  3. JAVA开发者的Golang快速指南
  4. mongodb studio 3t 破解无限使用脚本
  5. oracle 连续5分钟_3-1!10分钟3球杀入前四,连续5个客场大逆转,名字叫曼联
  6. JavaFX控件ID:设置Label文本内容代码示例
  7. foxpro mysql_将Visual Foxpro连接到MySql数据库
  8. 【clickhouse】clickhouse 表引擎 之 AggregatingMergeTree
  9. mac上Matlab怎么运行不了,解决macOS系统下matlab无法访问中文路径及中文乱码问题...
  10. php+mysql案例含源码_[源码和文档分享]基于PHP和MYSQL数据库实现的失物招领系统...
  11. mysql做主从分离后插入更新过慢
  12. VC++黑客编程收集的源码集合,只有你想不到的
  13. 关于采购中的PTA——概念如何理解及其计算公式
  14. protoc protoc-gen-go安装
  15. 【3分钟秒懂】MCU启动流程详解 基于NXP MPC574xG
  16. GFlags 使用详解
  17. 采访Java Collection的作者Joshua Bloch
  18. 游戏辅助制作核心--植物大战僵尸逆向之植物种植call(七)
  19. 苹果M1芯片的Mac怎么关闭SIP?M1 mac关闭Sip方法教程!
  20. 当当CEO李国庆斥资本竞争靠烧钱垄断市场 被海航抛弃的当当怎么了

热门文章

  1. 功能强大的滚动播放插件JQ-Slide
  2. 案例展示快做好了(更新)
  3. python基础===将Flask用于实现Mock-server
  4. 万达与IBM联手发力公有云市场,为不让马云当首富王健林也是拼了
  5. [转]优秀Python学习资源收集汇总
  6. 两台服务器实现会话共享
  7. 要是想让程序跳转到绝对地址是0x100000去执行
  8. Android开发技巧——大图裁剪
  9. $(document).ready、body.Onload()和 $(window).load的区别
  10. Python 读写文件和file对象(转)