最大子连续序列之和
来源:互联网 发布:网络推广有几种方法 编辑:程序博客网 时间:2024/05/18 21:43
问题简介:
求最大连续序列之和。例如:{-1,5,6,-10,15,-9,8},最大连续子序列和为{5,6,-10,15},和为16。
代码:
#include<cstdio>#include<algorithm>using namespace std;const int maxn=1000;int a[maxn]; //存入序列int b[maxn]; //存储状态 int main() { int m; scanf("%d",&m); for(int i=0;i<m;i++) { scanf("%d",&a[i]); } //录入样例{-1,5,6,-10,15,-9,8} b[0] = a[0]; int ans = b[0]; for(int i = 1;i<m ; i++) { b[i]=max(a[i],b[i-1]+a[i]); //讲解见a if(ans<b[i]) ans=b[i]; //ans储存最大序列之和 } printf("max %d\n" , ans); for(int i = 0;i<m;i++) //展现状态b[i]每个位置状态 printf("b[%d]=%d\n",i,b[i]); return 0; }
- a
状态转移方程
b[i]=max(a[i],b[i-1]+a[i])
b[i]每个状态为当前序号之前的最大子序列之和,max()函数将进行选择:
1.删除前一状态 a[i] 例如:b[1]=max(a[1],a[1]+b[0]);
2.保留前一个状态 b[i-1]+a[i] 例如:b[2]=max(a[2],a[2]+b[1]);
最后用ans将最大的那个状态保存
即求出了最大子序列之和
阅读全文
1 0
- 最大连续子序列之和
- 最大连续子序列之和
- 最大连续子序列之和
- 最大连续子序列之和
- 最大连续子序列之和
- 最大子连续序列之和
- 最大连续子序列之和
- 最大连续子序列之和,最大连续子序列乘积
- 计算最大连续子序列之和
- 输出最大连续子序列之和
- 最大连续子序列之和的问题
- 连续子序列之和
- 最大连续子序列之和(动态规划)
- 求最大连续子序列之和 立方算法
- 算法进化历程之“最大连续子序列之和”
- 算法之最大连续子序列之和之变形题目
- 最大连续子序列之和 动态规划 java
- 最大连续子序列之和算法进化历程
- Codevs 2980 买帽子
- 《程序设计入门—Java语言.翁恺》第二周编程作业(2)-信号报告
- 装饰者模式
- 【JAVASE_学习笔记】标识符与注释
- Java学习第七天
- 最大子连续序列之和
- SSD目标检测框架教程--2017.3
- IIC介绍(一)之物理层介绍
- android发布maven报错:Could not write to file '*****/build/poms/pom-default.xml'
- 浅谈 Mybatis中的 ${ } 和 #{ }的区别
- jquery的ajax实现异步请求范例
- Java学习第八天
- 51nod1220约数之和
- 数据库连接池