最大连续数列和

题目描述

对于一个有正有负的整数数组,请找出总和最大的连续数列。

给定一个int数组A和数组大小n,请返回最大的连续数列的和。保证n的大小小于等于3000。

测试样例:

[1,2,3,-6,1]
返回:6
class MaxSum {
public:
    int getMaxSum(vector<int> A, int n) {
        // write code here
        if(A.size() == 0)
            return 0;

        int max = INT_MIN;
        int sum = 0;
        for(size_t i = 0; i < A.size(); i++){
               if(sum < 0)
                sum = A[i];
            else
                sum += A[i];

            if(sum > max)
                max = sum;
        }

        return max;
    }
};
时间: 2024-10-14 19:56:17

最大连续数列和的相关文章

[LeetCode] Maximum Product Subarray 连续数列最大积

Find the contiguous subarray within an array (containing at least one number) which has the largest product. For example, given the array [2,3,-2,4],the contiguous subarray [2,3] has the largest product = 6. Hide Tags Array Dynamic Programming 这个问题是给

C++求连续数列之和为S的数组里面所有组合(根据公式S=(x+y)*n/2优美实现)

//博主mingliang37的思想,我后来想明白了,整理了一下. #include <iostream> using namespace std; //输出所有和为S的连续整正数序列. //x.......y(这是一个连续序列) //x+.....+y=S; //还记得小时候老师要我们做的一道题吗?求1+2+3+...+100=? //(1+100).100/2=5050. //所以我们假设这个连续正整数序列是从x开始到y结束,总共有n个数字 //那么S=(x+y)*n/2,且y-x=n-1

[小米OJ] 4. 最长连续数列

思路: 时间限制为O(n),即不能使用先排序后寻找的方法. 这里利用哈希表查询插入复杂度都为O(1)的特性来解,利用一个哈希表来保存每一个数字以及其所在数列的长度. 遍历每一个数字n:查询表中是否存在n-1和n+1,若存在,则hash[n]的值为1 + hash[n-1] + hash[n+1],若不存在即是 1. 同时,为了预防相同数字多次判断,每一次遍历时判断该数字在表中的value是否为0,若不为0说明已经判断过了,跳过即可. #include <bits/stdc++.h> using

给定一个整数数组(有正数和负数),找出总和最大的连续数列,并返回总和。

示例: 输入:2 , -8 ,3 , -2  ,4 ,-10 输出: 5 (即{3 ,-2 ,4})

397. 最长上升连续子序列

给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列.(最长上升连续子序列可以定义为从右到左或从左到右的序列.) 注意事项 time 样例 给定 [5, 4, 2, 1, 3], 其最长上升连续子序列(LICS)为 [5, 4, 2, 1], 返回 4. 给定 [5, 1, 2, 3, 4], 其最长上升连续子序列(LICS)为 [1, 2, 3, 4], 返回 4. 分别用两个量来统计升序和降序的当前连续数列长度 1 int longestI

【Divide and Conquer】53.Maximum Subarray(easy)

#week2# #from leetcode# Description Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, given the array [-2,1,-3,4,-1,2,1,-5,4], the contiguous subarray [4,-1,2,1] has the largest sum

算法题7 判断扑克牌中的顺子

题目: 来源 http://www.cnblogs.com/python27/archive/2011/11/27/2264405.html 随机抽取扑克牌中的n张牌,判断是不是顺子,即这5张牌是不是连续的.其中A看成1,J看成11,Q看成12,K看成13,大小王可以看成任何需要的数字. 分析: 对于扑克牌来说,数字范围是很明确的,1到K外加大小王(设定为M).假如这副牌是个顺子,也就是每张牌都不相同,那么利用一个大小为14的辅助数组counts[]就可以快速的实现排序,记录每张牌出现的次数,然

连号区间数

*/--> pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} 连号区间数 问题描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在 1~N 的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第 L 个到第 R 个元素)递增排序后能得到一个长度为 R-L+1 的"连续"数列,

蓝桥杯 - 连号区间数 (历届试题!)

连号区间数 时间限制:1.0s   内存限制:256.0MB 问题描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的"连续"数列,则称这个区间连号区间. 当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助. 输入格式 第一行是一个正整数N (1 <=