最大子段和
来源:互联网 发布:北京电脑数据恢复公司 编辑:程序博客网 时间:2024/06/05 04:13
令b[j]表示以位置 j 为终点的所有子区间中和最大的一个
子问题:如j为终点的最大子区间包含了位置j-1,则以j-1为终点的最大子区间必然包括在其中
如果b[j-1] >0, 那么显然b[j] = b[j-1] + a[j],用之前最大的一个加上a[j]即可,因为a[j]必须包含
如果b[j-1]<=0,那么b[j] = a[j] ,因为既然最大,前面的负数必然不能使你更大
实例
int max = 0;int b[n+1];int start = 0;int end = 0;memset(b,0,n+1);for(int i = 1; i <= n; ++i) { if(b[i-1]>0) { b[i] = b[i-1]+a[i]; }else{ b[i] = a[i]; } if(b[i]>max) max = b[i]; }
动态规划法的计算时间复杂度为O(n),是最优的解。做几道题加深理解
最直白的LIS题:http://acm.hdu.edu.cn/showproblem.php?pid=1087
最大子段和升级版,最大M段和:http://acm.hdu.edu.cn/showproblem.php?pid=1024
0 0
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- “最大子段和”
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- java中File
- HDU-5902-GCD is Funny
- poj 2778 DNA Sequence ac自动机+矩阵快速幂
- Java并发
- 2016.10.5比赛总结及八、九月总结
- 最大子段和
- effective stl 第44条:容器的成员函数优先于同名的算法
- js中的表单插件
- 苹果CEO库克访谈:看好AR,乔布斯改变他一生
- 生产者和消费者问题
- 国庆随笔
- Java数据结构与算法之stack栈
- W: GPG 错误:http://archive.ubuntukylin.com:10006 xenial InRelease: 由于没有公钥,无法验证下
- heapify的总结