C++ 数组求和
//题目描述:
//输入一个整形数组,数组里有正数也有负数。
//数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
//求所有子数组的和的最大值。要求时间复杂度为O(n)。
#include <iostream>
using namespace std;
//int maxSum(int* a, int n)
//{
// int sum=0;
// //其实要处理全是负数的情况,很简单,如稍后下面第3点所见,直接把这句改成:"int sum=a[0]"即可
// //也可以不改,当全是负数的情况,直接返回0,也不见得不行。
// int b=0;
//
// for(int i=0; i<n; i++)
// {
// if(b<0) //...
// b=a[i];
// else
// b+=a[i];
// if(sum<b)
// sum=b;
// }
// return sum;
//}
//
int main()
{
const int size = 13;
int a[size]={1, -2, 3, 10, -4, -70000, 2, -5,7,8,9,-10,-2};
int *sum = new int [size];
int result = 0;
//int a[]={-1,-2,-3,-4}; //测试全是负数的用例
// cout<<maxSum(a,8)<<endl;
sum[0] = a[0];
for(int i = 0; i< size; i++)
{
result = max(result, sum[i]);
sum[i+1] = max(a[i+1], sum[i] + a[i+1]);
}
cout << result << endl;
for(int i = 0;i < size; i++)
{
cout <<"sum= " << sum[i] << endl;
}
return 0;
}
//如果a[i]和前面的sum之和大于a[i],则a[i]作为老数组的元素。
//如果a[i]和前面的sum之和小于a[i] 则a[i]作为新数组的第一个元素。
分享到:
相关推荐
本项目"基于MPI+C++的数组求和程序"就是这样一个实例,它展示了如何使用MPI和C++来并行处理大数组的求和问题。 首先,我们要理解MPI的基本概念。MPI提供了一系列函数,如`MPI_Init`用于初始化并行环境,`MPI_Comm_...
在C++编程中,处理数组是一项基本操作,而数组之间的运算更是常见的任务之一。本问题主要探讨了如何在C++中实现两个一维数组的...通过实际编写和运行这样的代码,读者可以加深对C++数组操作的理解,并提高编程技能。
用户事先输入要处理的一组数据,此C++程序利用数组进行求和,求平均值,用条形图显示区间内数值个数。
0257_极智开发_解读从数组求和来看C++的发展
在C++中,数组是一种非常基础且重要的数据结构,它允许程序员存储一组同类型的元素。在数组详解中,我们将深入探讨一维数组、二维数组以及字符数组(即字符串)的定义、初始化、引用以及相关操作。 1. **一维数组**...
在描述中提到的"EX3_1.c"文件很可能是CUDA C++源代码,用于实现数组求和的并行算法。CUDA C++程序通常包含主机代码(在CPU上运行)和设备代码(在GPU上运行)。在设备代码中,我们可以使用__global__函数定义一个...
### C++中的数组转换成矩阵 #### 背景与目的 在计算机科学与编程领域,尤其是处理数据结构时,矩阵是一种非常常见的数据组织形式。矩阵可以被看作是二维数组的一种具体应用,广泛应用于线性代数、图像处理、机器...
在本文中,我们将深入探讨如何使用EMU8086模拟器来处理数组并实现数组元素的求和。emu8086是一款流行的8086微处理器仿真软件,它允许程序员在没有实际硬件的情况下编写、编译和调试汇编语言程序。 首先,我们要了解...
### 知识点一:C++二维数组的动态分配 代码中使用了动态内存分配来创建两个二维数组`firstTemp`和`secondTemp`,用于存储输入的矩阵数据,以及一个额外的二维数组`printTemp`用于存放两个矩阵相加的结果。动态内存...
c, c++,n个数求和,数组求和
用c++编写先进先出页面置换算法,没有用队列,用数组。
在C++编程语言中,实现一个求和的程序并不复杂,无论是整数、负数还是小数,都可以通过基础的算术运算来实现。这里我们将深入探讨如何编写这样的程序,并理解其中涉及的关键知识点。 首先,我们需要了解C++的基础...
数据存储模块:使用C++数组存储树状数组的数据,支持动态分配和调整大小。 更新模块:实现单点更新功能,支持对数组某一位置进行更新,并维护树状数组的结构。 查询模块:实现前缀和查询功能,支持在对数时间内查询...
实验1 整形数组元素求和实验1计算面积实验2 computer类 继承实验2 computer类 友元实验2 CPU类实验2 P实验3 animal实验3 BaseClass实验3 vehicle等代码文件
根据提供的文件内容,本文旨在深入解析“高斯求和”的相关知识,尤其是与C++编程语言相结合的题解。首先,需要澄清“高斯求和”指的是一种基于高斯求和公式(也称为等差数列求和公式)的数学解题方法。而文件内容...
本话题将深入探讨数据结构中的链表以及其在C++中的一元多项式求和应用。链表是一种线性数据结构,不同于数组,它不连续存储元素,而是通过节点之间的指针链接。这里我们将详细讲解链表的实现、一元多项式的表示以及...
能实现任意大小的多位数相加,在运算过程中用vector指定数组大小,且可进行任意次操作。
一般BIT是单点查询,区域求和; 进阶一点的是区域加减,单点查询;...这里所说的是区域加减区域求和,包括一维树状数组以及二维树状数组。通过修改可以把求和改成求异或和等大部分具有结合律的运算。
你可以编写函数来处理这些数组,例如打印矩阵、求和等。 4. **函数指针与数组**:C++允许我们使用函数指针,这样可以将函数作为参数传递,或者将数组作为函数的返回值。结合数组和函数指针,可以实现动态策略或回调...