博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++求数组子数组和的最大值并将该子数组和最大值打印出来
阅读量:5068 次
发布时间:2019-06-12

本文共 1305 字,大约阅读时间需要 4 分钟。

#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

你可能感兴趣的文章
enq: SQ - contention
查看>>
cer证书签名验证
查看>>
ant 安装
查看>>
新手Python第一天(接触)
查看>>
iOS中ARC内部原理
查看>>
【bzoj1029】[JSOI2007]建筑抢修
查看>>
synchronized
查看>>
你不得不了解的应用容器引擎---Docker
查看>>
easyui datagrid 弹出页面会出现两个上下滚动条处理办法!
查看>>
迭代器和生成器
查看>>
codevs 1080 线段树练习
查看>>
JS模块化库seajs体验
查看>>
Android内核sysfs中switch类使用实例
查看>>
POJ2288 Islands and Bridges(TSP:状压DP)
查看>>
[No0000195]NoSQL还是SQL?这一篇讲清楚
查看>>
IOS开发UI篇--UITableView的自定义布局==xib布局
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
Python-Web框架的本质
查看>>
Unrecognized Windows Sockets error: 0: JVM_Bind 异常解决办法
查看>>
QML学习笔记之一
查看>>