最大连续子序列和-动态规划
题目描述:
给定K个整数的序列{ N1, N2, …, NK },其任意连续子序列可表示为{ Ni, Ni+1, …, Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序中元素和最大的一个, 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20。
注意:
最大连续子序列和如果为负,则返回0;而本题目中的最大连续子序列和并不返回0,如果是全为负数,则返回最大的负数即可。
思路分析:
-具有最优子结构,和重叠子问题, 动态规划的算法思路
- 最大连续子序列和只可能是以位置0~n-1中某个位置结尾。当遍历到第i个元素时,判断在它前面的连续子序列和是否大于0,如果大于0,则以位置i结尾的最大连续子序列和为元素i和前门的连续子序列和相加;否则,则以位置i结尾的最大连续子序列和为元素i。
-
状态转移方程: sum[i]=max(sum[i-1]+a[i],a[i])
代码:
int maxsequence3(int a[], int len)
{ int maxsum, maxhere; maxsum = maxhere = a[0]; //初始化最大和为a【0】 for (int i=1; i<len; i++) { if (maxhere <= 0) maxhere = a[i]; //如果前面位置最大连续子序列和小于等于0,则以当前位置i结尾的最大连续子序列和为a[i] else maxhere += a[i]; //如果前面位置最大连续子序列和大于0,则以当前位置i结尾的最大连续子序列和为它们两者之和 if (maxhere > maxsum) { maxsum = maxhere; //更新最大连续子序列和 } } return maxsum;
}
我的微信二维码如下,欢迎交流讨论
欢迎关注《IT面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧,都是干货!
微信订阅号二维码如下:
参考:
http://blog.csdn.net/sgbfblog/article/details/8032464
http://blog.csdn.net/zmazon/article/details/8247015
- -
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
转载于:https://www.cnblogs.com/fengsehng/p/6048689.html
最大连续子序列和-动态规划相关推荐
- 最大连续子序列----DP动态规划
1196: 最大连续子序列 时间限制: 1 Sec 内存限制: 128 MB 提交: 44 解决: 20 [提交][状态][讨论版] 题目描述 给定 K 个整数的序列{ N1, N2, ... ...
- HDU 1231 最大连续子序列 (动态规划)
最大连续子序列 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- 动态规划--连续子序列的最大和
给定k个整数的序列{N1,N2,...,Nk },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= k.最大连续子序列是所有连续 ...
- 54 - 算法 - 动态规划问题 连续子序列和最大
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <cmath ...
- 算法--最大连续子序列和(动态规划,分而治之)
今天在LeetCode上遇到一个求最大连续子序列和的问题,如下: Given an integer array nums, find the contiguous subarray (containi ...
- 【恋上数据结构】动态规划(找零钱、最大连续子序列和、最长上升子序列、最长公共子序列、最长公共子串、0-1背包)
动态规划(Dynamic Programming) 练习1:找零钱 找零钱 - 暴力递归 找零钱 - 记忆化搜索 找零钱 - 递推 思考题:输出找零钱的具体方案(具体是用了哪些面值的硬币) 找零钱 - ...
- 动态规划经典题目——最大连续子序列之和
一.题目 给定K个整数的序列{ N1, N2, -, NK },其任意连续子序列可表示为{ Ni, Ni+1, -, Nj },其中 1 <= i <= j <= K.最大连续子序列 ...
- 最大连续子序列和:动态规划经典题目
[题目] 给定k个整数的序列{N1,N2,...,Nk },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= k.最大连续子序列 ...
- 动态规划 HDU1231-------最大连续子序列
Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i < ...
最新文章
- Producing Open Source Software
- C# string.Format谨慎使用
- C#调用USER32.DLL的API函数
- 趣链 BitXHub跨链平台 (2)跨链网络拓扑
- C语言项目:扫雷大战精简版
- 为什么要free释放内存_为什么在Free Code Camp上列出一份工作要花1,000美元?
- 拉普拉斯变换公式表_复变函数之拉普拉斯变换小结
- Youki的C++命名规则
- java 数字 下划线_数字文字中的下划线– Java 7功能
- GdiPlus使用方法
- RAPIDXML 中文手册,根据官方文档完整翻译!
- 从小白到架构师原来是这样修炼出来的
- 三角形的外心 内心 重心 垂心 九点圆心与各圆半径的算法
- ICP网站备案查询系统php版 v1.0+(源码)
- ***HDU 3237 - Help Bubu(状压DP)
- TCP-IP计算机网络基本概述
- java subject类的作用_RxJava2 系列-3:使用 Subject
- 深度学习平台、CPU和GPU使用
- 联通光猫后台 192.168.1.1登录
- 企业能源管控平台在钢铁行业能源管理中的应用
热门文章
- 用计算机弹100万个可能,计算机应用基础试题与答案-2(选择题100道)(16页)-原创力文档...
- linux 脚本 变量为空,Shell脚本中判断输入变量或者参数是否为空的方法
- unity android本地推送,Unity安卓本地推送
- VS C#窗体程序未能找到Form1.resx文件解决方法
- 英特尔的指令集体系结构_对标英特尔的RISC-V大有可为,CPU三分天下格局可期
- datagridview滚动条自动滚动_Win32编程基础之滚动条
- android开发获取应用本身耗电量_别找了,Android常用自动化工具全在这儿了!
- C++知识点36——使用智能指针的注意事项(下)
- python hello world程序编写_编写高质量代码 改善Python程序的91个建议
- python链表的创建_《大话数据结构》配套源码:链表(Python版)