最大子序列和问题
发布日期:2021-07-17 15:49:27
浏览次数:4
分类:技术文章
本文共 639 字,大约阅读时间需要 2 分钟。
1. 问题描述
最大连续子序列和问题,即是求给定序列中连续元素之和的最大值,例如给定序列a为:
{ -1, 2, 3, 7, -5, 4 }
那么最大子序列之和为12,子序列为 { 2, 3, 7 }.
2. 问题分析
我们使用动态规划来解决这道题,使用动态规划的思想就是要得到该问题的状态定义和状态转移方程,状态定义可以轻松得出:
- sum[ i ]:以第i个元素结尾的子序列之和
- sum[ i ] = max{ a[ i ], sum[ i - 1 ] + a[ i ] }
根据状态转移方程,就可以容易地得到以下代码:
int max_sub(int a[], int size) { int i; int max = 0,sum = 0; for(i = 0;i < size;i++) { if(sum + a[i] < a[i]) sum = a[i]; else sum += a[i]; if(max < sum) max = sum; } return max;}
转载地址:https://blog.csdn.net/huzhiyuan0000000/article/details/74937537 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月04日 18时35分55秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
L2-006 树的遍历 (25 分)
2019-04-26
L3-010 是否完全二叉搜索树 (30 分)
2019-04-26
6-10 阶乘计算升级版 (20 分)
2019-04-26
7-78 阅览室 (20 分)
2021-06-29
7-21 查验身份证 (15 分)
2021-06-29
实验4-1-5 韩信点兵 (10 分)
2021-06-29
1016 部分A+B (15 分)
2021-06-29
1023 组个最小数 (20 分)
2021-06-29
1036 跟奥巴马一起编程 (15 分)
2021-06-29
1002 写出这个数 (20 分)
2021-06-29
1010 一元多项式求导 (25 分)
2021-06-29
使用Python通过win32 COM接口实现Excel单元格写入
2021-06-30
树莓派的硬件信息了解与思考
2021-06-30
树莓派上创建个人用户
2021-06-30
wiringpi安装编译问题解决
2021-06-30
Windows上创建Emacs配置文件
2019-04-27
编写并运行第一个Lisp程序
2019-04-27
VS code中godoc命令不可用问题解决
2019-04-27
Emacs-103-使用spacemacs自带配置显示行号
2019-04-27
021_Excel的条件格式
2019-04-27