最大字段和算法
2016-02-24 16:46
190 查看
动态规划算法:
b[j]=max{a[i]+
+a[j]},1<=i<=j,且1<=j<=n,则所求的最大子段和为max b[j],1<=j<=n。
由b[j]的定义可易知,当b[j-1]>0时b[j]=b[j-1]+a[j],否则b[j]=a[j]。故b[j]的动态规划递归式为:
b[j]=max(b[j-1]+a[j],a[j]),1<=j<=n。
T(n)=O(n)
b[j]=max{a[i]+
+a[j]},1<=i<=j,且1<=j<=n,则所求的最大子段和为max b[j],1<=j<=n。
由b[j]的定义可易知,当b[j-1]>0时b[j]=b[j-1]+a[j],否则b[j]=a[j]。故b[j]的动态规划递归式为:
b[j]=max(b[j-1]+a[j],a[j]),1<=j<=n。
T(n)=O(n)
int MaxSum_DYN(int *v,int n) { int sum=0,b=0; int i; for (i=1;i<=n;i++) { if(b>0) b+=v[i]; else b=v[i]; if(b>sum) sum=b; } return sum; }
相关文章推荐
- iOS学习----------SDWebImage框架解析(2)
- lemon oa前端页面——由user-base-list谈项目组织
- 自制ichartjs饼图
- mac 环境变量配置
- .net 2.0 升级到 .net 4.0
- PAE下的虚拟内存映射 分析
- Linux系统零散记录
- [Leetcode] Perfect Squares 完美平方数
- springMVC 文件下载【文件已经自服务器上准备,可以按照此下载文件】
- Spring MVC 文件下载最佳实践
- 重启crontab服务
- IOS学习 NSUserDefault学习
- HDU2191(多重背包)
- sql入门基本语法语句数据的操作(增删改查)
- 刚开通了博客,好开森
- java web 开发中验证码的应用
- 一劳永逸让jfreechart支持中文显示
- PAE ( Physical Address Extension )
- ansible配置文件介绍及命令介绍
- QT自定义精美换肤界面