求一个连续子序列的和的最大值
2017-02-15 21:21
501 查看
例如:
序列K{k1,k2,k3,k4,,,kn}; 求其中地址连续的序列的和的最大值。
这是我在面试的时候遇到的问题,回来之后好好琢磨了一下,发现这其中的很大奥秘
可能这里会用到算法,但是选用哪一种算法能够使时间复杂度最低呢,从刚开始的穷举法到递归(分治)法到最后的动态规划法,我因为今天时间有限就不一一举例了,我就将时间复杂度最低的动态规划法举例一下好啦!
在代码中可以看到 currentSum 是始终更新的,这里的时间复杂度为 O(n)。 找工作每天跑的真累啊!我的要求也不高,只要有项目做让我能力提升就可以。哎!!
我是最文艺的程序猿!
序列K{k1,k2,k3,k4,,,kn}; 求其中地址连续的序列的和的最大值。
这是我在面试的时候遇到的问题,回来之后好好琢磨了一下,发现这其中的很大奥秘
可能这里会用到算法,但是选用哪一种算法能够使时间复杂度最低呢,从刚开始的穷举法到递归(分治)法到最后的动态规划法,我因为今天时间有限就不一一举例了,我就将时间复杂度最低的动态规划法举例一下好啦!
int MaxSubSequence(const int A[],int n){ int currentSum,Maxsum,j; currentSum=Maxsum=0; for(j=0;j<n;j++){ currentSum+=A[j]; if(currentSum>MaxSum){ MaxSum = currentSum; }else if(currentSum<0){ currentSum=0; } } return MaxSum; }
在代码中可以看到 currentSum 是始终更新的,这里的时间复杂度为 O(n)。 找工作每天跑的真累啊!我的要求也不高,只要有项目做让我能力提升就可以。哎!!
我是最文艺的程序猿!
相关文章推荐
- 算法题:找出一个数组中相加值最大的连续序列元素
- 输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,应输出0(表示无解)。1<=18,-10<=Si<=10
- 求最大连续序列和的一个巧妙方法,时间复杂度O(n)
- 一个序列中连续子序列的最大和
- 把一个包含n个正整数的序列划分成m个连续的子序列。设第i个序列的各数之和为S(i),求所有S(i)的最大值的最小值是多少?
- 求一个序列的最大连续长度
- 求一个数组中序列连续数的最大值
- 给一个数组,元素都是整数(有正数也有负数),寻找连续的元素相加之和为最大的序列。
- 找一个数组的最大上升子序列(允许不连续)
- 借助 求 一个序列中最大和子序列 学习 分治算法 code in C#
- 一个int数组,求乘起来最大的连续子序列
- 编程求邮资最大的一个连续的区间
- 最大连续序列的和
- 一个看似简单却复杂的问题:求两个字符串的 左向右匹配 所有的 最长连续的 公共子字符串( 在每个字符串中先后次序相同的) 序列
- 只考加法的面试题——将一个正整数表示成连续的自然数序列之和
- 输入一个正数n,输出所有和为n 连续正数序列
- 求序列连续数最大和
- 输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列
- poj 2479 两段连续子序列的最大和
- 写一个函数(maxLength)返回该参数中连续相同字母的最大个数及该字母