int max_sum(int *arr,int len)
{
assert(arr);
assert(len > 0);
int sum=0;
int key=-INT_MAX;
for(int i=0; i<len; ++i)
{
if(sum = key)
...
分类:
编程语言 时间:
2016-08-14 13:12:21
阅读次数:
152
问题描述: 输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如: 序列:-2 11 -4 13 -5 -2,则最大子序列和为20。 序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,则最大子序列和为16。 算法一: //穷举法,复杂 ...
分类:
其他好文 时间:
2016-08-13 06:31:53
阅读次数:
154
最大子序列和 题目描述 输入一个长度为n的整数序列(A1,A2,…,An),从中找出一段连续的长度不超过M的子序列,使得这个子序列的和最大。例如:序列1,-3,5,l,-2,3,当M = 2或3时,S = 5 + 1 = 6;当M = 4时,S = 5 + 1 +(-2)+ 3 = 7。 输入一个长 ...
分类:
其他好文 时间:
2016-08-06 00:21:50
阅读次数:
238
问题描述: 输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如: 序列:-2 11 -4 13 -5 -2,则最大子序列和为20。 序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,则最大子序列和为16。 O(n)解法: ...
分类:
其他好文 时间:
2016-07-31 17:19:18
阅读次数:
121
书中用求解最大子序列和的方式介绍了分治算法(divide-and-conquer) 分治算法是一种相对快速的算法 运行时间为O(logN) 最大子序列和的问题如下: 给出一组整数 A1 A2 … AN 求∑jk=i Ak 若所有整数均为负 则最大子序列和为0 e.g. 输入-2, 11,-4, 13 ...
分类:
编程语言 时间:
2016-07-21 22:00:23
阅读次数:
185
给定k个整数的序列{N1,N2,...,Nk },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1
注:为方便起见,如果所有整数均为负数,则最大子序列和为0。
算法一,穷举法,找出所有子数组,然后求出子数组的和,在所有子数组的和中取最大值
/*O(n^3)穷举法
* 缺点:重复累加,与maxSum比较,每次i->j中间累加完了才与maxSum比较...
分类:
其他好文 时间:
2016-07-19 10:13:37
阅读次数:
130
参考书籍《数据结构与算法分析:C语言描述》 ...
分类:
其他好文 时间:
2016-07-14 02:02:50
阅读次数:
181
题目链接:http://poj.org/problem?id=1050 发现这个题没有写过题解,现在补上吧,思路挺经典的。 思路就是枚举所有的连续的连续的行,比如1 2 3 4 12 23 34 45 123 234 345...然后把这些行对应列相加缩成一行,之后就是求最大子序列和了。 ...
分类:
其他好文 时间:
2016-06-18 11:31:47
阅读次数:
111
这道题是求最大子序列和,这是很经典的算法题,网络上有很多资料,我用的是动态规划的方法,时间复杂度为O(N)。 假设序列的长度为n,那么和最大的连续子序列,只能以第0~第n-1中的某一个数结尾。 当遍历到第i个元素时,假设它前面的连续子序列和为maxhere。 如果maxhere>0,maxhere ...
分类:
其他好文 时间:
2016-05-17 08:33:11
阅读次数:
123
最大子序列: 问题描述:给定整数序列:a1,a2,a3,...an(可能有负数),求a1~an的一个子序列ai~aj,使其和最大 我们很容易想到一个O(n^2)复杂度的方法,即 i : 1 >n,并令 s = 0,然后 j : i >n, s< s + a[j],更新maxsum,如若想得到具体的子 ...
分类:
其他好文 时间:
2016-05-04 22:26:04
阅读次数:
330