`

最大连续子序列求和

 
阅读更多

问题:

有一串 int 数字串,存在数组a中。要求找到起始位置start和终止位置end,使得从start位置到end位置的所有数字之和最大,返回这个最大值max

算法思路:

suffer 为以 a[x] 终止且包含 a[x] 的最大序列的和,有:

   if(suffer+a[x+1]>max) suffer+=a[x+1],max=suffer;

   else if(Suffer+a[x+1]) suffer+=a[x+1];

   else suffer=0;

保证max是所有suffer中最大的一个。其算法的时间复杂度为O(n),代码实现如下:

          

	public int getMaxSub(int[] a){
		int max=0;
		int suffer=0;
		for(int i=1;i<a.length;i++){
			if(a[i]+suffer>max){
				suffer+=a[i];
				max=suffer;
				}
			else if(a[i]+suffer>0){
				suffer+=a[i];
				}
			else suffer=0;
			}
		return suffer;
		}

 

分享到:
评论

相关推荐

    最大连续子序列和

    最大连续子序列

    C++求最大子序列的和

    C++求最大子序列的和 问题:求一个数组 / 序列的满足条件的子数组 / 子序列。 条件: 1. 子数组必须是连续的。 2. 求和即可,不需要返回子数组是哪段。 3. 数组元素为整数。

    判断链表是否为回文链表leetcode-Algorithms:Coding_Interviews和Leetcode

    连续子序列的最大和 替换空格 二维数组中的查找 从尾到头打印链表 重建二叉树(用前序和中序构建) 从上到下打印二叉树(层序遍历) 用两个栈实现队列 斐波那契数列 旋转数组的最小数字 矩阵中的路径 数值的整数次方 ...

    算法引论:一种创造性方法.[美]Udi Manber(带详细书签).pdf

    5.8 寻找最大连续子序列 5.9 增强归纳假设 5.10 动态规划:背包问题 5.11 常见的错误 5.12 小结 第6章 序列和集合的算法 6.1 引言 6.2 二叉搜索的几种形式 6.2.1 纯二叉搜索 6.2.2 循环序列的二叉搜索 ...

    leetcode卡-Leetcode:日常算法

    连续子序列最大和 30days遇到两次变种 300 寻找数组中最大的递增子列 322 硬币组合问题 sort 快排 手撕次数&gt;2 冒泡 周围测试友人经常遇到 324 特殊排序 a0 &lt; a1 &gt; a2 406 区间特殊排序 BinarySearch 367 判断是否...

    lrucacheleetcode-leetcode-oj:LeetcodeOJ解决方案

    lru缓存leetcode ...不同的子序列 将二叉树展平到链表 路径求和 II 路径和 二叉树的最小深度 平衡二叉树 将排序列表转换为二叉搜索树 将排序数组转换为二叉搜索树 二叉树层次遍历二 从中序和后序遍历构造二叉

    leetcode正方体堆叠-DSA-Important:DSA-重要

    最大和连续子阵列:Kadane 算法 合并重叠子区间 第2天:(数组) 设置矩阵零 帕斯卡三角 下一个排列 数组的反转(使用归并排序) 困难(未完成) 股票买卖 旋转矩阵 第3天:(数组/数学)###未完成 在二维矩阵中搜索...

    leetcode2-coding-interview-solutions:LeetCode/LintCode解决方案

    子序列 —— 排列硬币 —— 分配 Cookie —— 赋值运算符重载(仅限 C++) —— —— —— —— 基数 7 —— 基本计算器 —— 基本计算器 II —— 棋盘上的战舰 —— 美丽的安排 —— 最佳会面点 —— 买卖股票的...

    lrucacheleetcode-Problem-solving-101:我创建了这个repo来跟踪我的问题解决进度

    最长连续序列 总和为 0 的最大子数组 用给定的 XOR 计算子数组的数量(这解决了很多问题) 无重复的最长子串 链表 反转链表 查找 LinkedList 的中间 合并两个排序的链表 从 LinkedList 后面删除第 N 个节点 给定节点...

    leetcode2sumc-DSA-practice:DSA-实践

    的最大连续数 合并两个排序列表 从排序数组中删除重复项 三和 截留雨水 贪婪的 话题 关联 最少硬币数(印度货币数组) 分数背包 作业排序问题 铁路所需的最少站台数量 N 一室会议 散列 话题 关联 2 求和问题 连续...

    C++ STL 开发技术导引(第6章)

    21.11 重复元素子序列搜索search_n 299 21.12 最后一个子序列搜索find_end 301 21.13 本章小结 303 第22章 变易算法 304 22.1 元素复制copy 304 22.2 反向复制copy_backward 305 22.3 元素交换swap ...

    C++ STL开发技术导引(第5章)

    21.11 重复元素子序列搜索search_n 299 21.12 最后一个子序列搜索find_end 301 21.13 本章小结 303 第22章 变易算法 304 22.1 元素复制copy 304 22.2 反向复制copy_backward 305 22.3 元素交换swap ...

    C++ STL开发技术导引(第3章)

    21.11 重复元素子序列搜索search_n 299 21.12 最后一个子序列搜索find_end 301 21.13 本章小结 303 第22章 变易算法 304 22.1 元素复制copy 304 22.2 反向复制copy_backward 305 22.3 元素交换swap ...

    javalruleetcode-30dayscodingchallenge-TUF:30天编码挑战

    java lru leetcode 带你前进备忘单 我要感谢“Take you forward team and Striver_79 ...vikramaditya)”发起这个精彩的编码挑战。...合并重叠子区间 ...最长连续序列 总和为 0 的最大子数组 用给定的 XOR 计算

    Python Cookbook

    5.13 寻找子序列 208 5.14 给字典类型增加排名功能 210 5.15 根据姓的首字母将人名排序和分组 214 第6章 面向对象编程 217 引言 217 6.1 温标的转换 223 6.2 定义常量 225 6.3 限制属性的设置 227 6.4 链式...

    javascript文档

    floor 方法 返回小于或等于其数值参数的最大整数。 fontcolor 方法 将 HTML 带 COLOR 属性的 &lt;FONT&gt; 标识添加到 String 对象中的文本两端。 fontsize 方法 将 HTML 带 SIZE 属性的 &lt;FONT&gt; 标识添加到 String 对象...

    JScript 语言参考

    floor 方法 返回小于或等于其数值参数的最大整数。 fontcolor 方法 将 HTML 带 COLOR 属性的 &lt;FONT&gt; 标识添加到 String 对象中的文本两端。 fontsize 方法 将 HTML 带 SIZE 属性的 &lt;FONT&gt; 标识添加到 String 对象...

    微软JavaScript手册

    floor 方法 返回小于或等于其数值参数的最大整数。 fontcolor 方法 将 HTML 带 COLOR 属性的 &lt;FONT&gt; 标识添加到 String 对象中的文本两端。 fontsize 方法 将 HTML 带 SIZE 属性的 &lt;FONT&gt; 标识添加到 String 对象...

Global site tag (gtag.js) - Google Analytics