`
weihe6666
  • 浏览: 440444 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

C++ 数组求和

阅读更多
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和C++来并行处理大数组的求和问题。 首先,我们要理解MPI的基本概念。MPI提供了一系列函数,如`MPI_Init`用于初始化并行环境,`MPI_Comm_...

    C++两个一维数组相加求和

    在C++编程中,处理数组是一项基本操作,而数组之间的运算更是常见的任务之一。本问题主要探讨了如何在C++中实现两个一维数组的...通过实际编写和运行这样的代码,读者可以加深对C++数组操作的理解,并提高编程技能。

    数组求和,求平均值,用条形图显示区间内数值个数

    用户事先输入要处理的一组数据,此C++程序利用数组进行求和,求平均值,用条形图显示区间内数值个数。

    0257-极智开发-解读从数组求和来看C++的发展

    0257_极智开发_解读从数组求和来看C++的发展

    c++ 数组详解

    在C++中,数组是一种非常基础且重要的数据结构,它允许程序员存储一组同类型的元素。在数组详解中,我们将深入探讨一维数组、二维数组以及字符数组(即字符串)的定义、初始化、引用以及相关操作。 1. **一维数组**...

    CUDA.rar_CUDA 数组求和_cuda_cuda 并行计算_cuda实验报告_并行计算

    在描述中提到的"EX3_1.c"文件很可能是CUDA C++源代码,用于实现数组求和的并行算法。CUDA C++程序通常包含主机代码(在CPU上运行)和设备代码(在GPU上运行)。在设备代码中,我们可以使用__global__函数定义一个...

    C++的数组转换成矩阵

    ### C++中的数组转换成矩阵 #### 背景与目的 在计算机科学与编程领域,尤其是处理数据结构时,矩阵是一种非常常见的数据组织形式。矩阵可以被看作是二维数组的一种具体应用,广泛应用于线性代数、图像处理、机器...

    digui.rar_emu8086_emu8086数组求和_数组emu8086

    在本文中,我们将深入探讨如何使用EMU8086模拟器来处理数组并实现数组元素的求和。emu8086是一款流行的8086微处理器仿真软件,它允许程序员在没有实际硬件的情况下编写、编译和调试汇编语言程序。 首先,我们要了解...

    用C++二维数组做的两个矩阵相加 没有考虑任何条件

    ### 知识点一:C++二维数组的动态分配 代码中使用了动态内存分配来创建两个二维数组`firstTemp`和`secondTemp`,用于存储输入的矩阵数据,以及一个额外的二维数组`printTemp`用于存放两个矩阵相加的结果。动态内存...

    c、c++,n个数求和

    c, c++,n个数求和,数组求和

    数组实现先进先出算法

    用c++编写先进先出页面置换算法,没有用队列,用数组。

    一个求和的c++程序很简单的 可定可以看懂得

    在C++编程语言中,实现一个求和的程序并不复杂,无论是整数、负数还是小数,都可以通过基础的算术运算来实现。这里我们将深入探讨如何编写这样的程序,并理解其中涉及的关键知识点。 首先,我们需要了解C++的基础...

    基于C++的树状数组(免费提供全部源码)

    数据存储模块:使用C++数组存储树状数组的数据,支持动态分配和调整大小。 更新模块:实现单点更新功能,支持对数组某一位置进行更新,并维护树状数组的结构。 查询模块:实现前缀和查询功能,支持在对数时间内查询...

    tyutC++实验实验1 整形数组元素求和等

    实验1 整形数组元素求和实验1计算面积实验2 computer类 继承实验2 computer类 友元实验2 CPU类实验2 P实验3 animal实验3 BaseClass实验3 vehicle等代码文件

    高斯求和的题解.pdf

    根据提供的文件内容,本文旨在深入解析“高斯求和”的相关知识,尤其是与C++编程语言相结合的题解。首先,需要澄清“高斯求和”指的是一种基于高斯求和公式(也称为等差数列求和公式)的数学解题方法。而文件内容...

    数据结构链表的应用C++一元多项式求和

    本话题将深入探讨数据结构中的链表以及其在C++中的一元多项式求和应用。链表是一种线性数据结构,不同于数组,它不连续存储元素,而是通过节点之间的指针链接。这里我们将详细讲解链表的实现、一元多项式的表示以及...

    C++多位大数求和

    能实现任意大小的多位数相加,在运算过程中用vector指定数组大小,且可进行任意次操作。

    树状数组另一类用法(C++源码)

    一般BIT是单点查询,区域求和; 进阶一点的是区域加减,单点查询;...这里所说的是区域加减区域求和,包括一维树状数组以及二维树状数组。通过修改可以把求和改成求异或和等大部分具有结合律的运算。

    c++经典程序(数组与函数)

    你可以编写函数来处理这些数组,例如打印矩阵、求和等。 4. **函数指针与数组**:C++允许我们使用函数指针,这样可以将函数作为参数传递,或者将数组作为函数的返回值。结合数组和函数指针,可以实现动态策略或回调...

Global site tag (gtag.js) - Google Analytics