【题目描述】输入一个整型数组,数组里有正数,也有负数。数组中一个或连续的多个整数组成的一个子数组,求所有子数组的最大值。要求时间复杂度为O(n)。【解决方案】解法一:举例分析数组的规律我的代码实现,仅供参考: 1 public static int FindGreatestSumOf...
分类:
编程语言 时间:
2015-09-16 17:25:46
阅读次数:
139
在上一篇中,通过一个求连续子数组的最大和的例子讲解,想必我们已经大概了然了分治策略和递归式的含义,可能会比较模糊,知道但不能用语言清晰地描述出来。但没关系,我相信通过这篇博文,我们会比较清楚且容易地用自己的话来描述。 通过前面两章的学习,我们已经接触了两个例子:归并排序和子数组最大和。这两个例...
分类:
编程语言 时间:
2015-09-15 21:38:12
阅读次数:
192
题目:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},因此输出为该子数组的和18。
分类:
编程语言 时间:
2015-09-13 13:18:57
阅读次数:
276
//计算数组中任何连续子数组的最大和,并打印最大子数组(求开始和结束下标)
//思路:1:当数组元素全为0时,输出最大的那个负数
//??????2:当数组有正有负时,i=0遍历数组,从大于0的那个元素开始,记录此...
分类:
编程语言 时间:
2015-09-09 13:35:43
阅读次数:
182
题目来源:《剑指offer》面试题31、《编程之美》2.14 题目:输入一个整形数组,数组里有正数也有负数。数组中一个或连续多个整数组成一个子数组。求所有子数组的和的最大值 解法一:假设id代表自序列的一个起点,j代表终点。如果a[i]是负的,那么它不可能代表最优子序列的起点,因为任何包含a...
分类:
编程语言 时间:
2015-09-03 23:14:50
阅读次数:
214
题目:输入一个整型数组,数组里有正数也有负数。数组中一个或者连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度O(n)本题可以把所有子数组全部找出来再求其和的最大值便可以得出,但是这样会导致算法的时间复杂度为0(n^2),所以有两种方法来解决这个问题。方法1.数组扫描我们扫描一遍数...
分类:
编程语言 时间:
2015-09-01 16:35:58
阅读次数:
167
HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2}...
分类:
编程语言 时间:
2015-08-31 23:22:48
阅读次数:
139
题目:
有一个整数数组n,a和b是n里两个互不相交的子数组。返回sum(a)+sum(b)的最大值。
分析:
新建两个数组left和right,left[i]表示n[0:i]的连续子数组的最大和,right[i]表示n[i:length-1]的连续子数组的最大和。left[i]+right[i+1]的最大值就是答案。
int SumOfTwoSubarray(const ...
分类:
编程语言 时间:
2015-08-31 01:16:13
阅读次数:
328
Leetcode上有一个Max Sum问题,题目的描述很简单,即对于一个输入的数组,求其连续子数组的最大和。比如说,A={ 6,-1,5,4,-7},那么其连续子数组的最大和为6
+ (-1) +5 + 4 = 14.
分析:
这是很简单的动态规划题,动态规划做多了,第一个想法就是用一个一维数组记录以每个元素为结尾的子序列的最大和,然后再扫描一遍这个数组,以获取最大值。但是仔细分析一下,其...
分类:
其他好文 时间:
2015-08-26 22:23:51
阅读次数:
141
给出一个整数数组a(正负数都有),如何找出一个连续子数组(可以一个都不取,那么结果为0),使得其中的和最大?例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。看见这个问题你的第一反应是用什么算法?(1) 枚举?对,枚举是万能的!枚举什么?子数组的位置!好枚举一个开...
分类:
其他好文 时间:
2015-08-25 15:47:49
阅读次数:
203