题目描述:

给定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

最大连续子序列和-动态规划相关推荐

  1. 最大连续子序列----DP动态规划

    1196: 最大连续子序列 时间限制: 1 Sec  内存限制: 128 MB 提交: 44  解决: 20 [提交][状态][讨论版] 题目描述 给定 K 个整数的序列{ N1,  N2,  ... ...

  2. HDU 1231 最大连续子序列 (动态规划)

    最大连续子序列 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  3. 动态规划--连续子序列的最大和

    给定k个整数的序列{N1,N2,...,Nk },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= k.最大连续子序列是所有连续 ...

  4. 54 - 算法 - 动态规划问题 连续子序列和最大

    #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <cmath ...

  5. 算法--最大连续子序列和(动态规划,分而治之)

    今天在LeetCode上遇到一个求最大连续子序列和的问题,如下: Given an integer array nums, find the contiguous subarray (containi ...

  6. 【恋上数据结构】动态规划(找零钱、最大连续子序列和、最长上升子序列、最长公共子序列、最长公共子串、0-1背包)

    动态规划(Dynamic Programming) 练习1:找零钱 找零钱 - 暴力递归 找零钱 - 记忆化搜索 找零钱 - 递推 思考题:输出找零钱的具体方案(具体是用了哪些面值的硬币) 找零钱 - ...

  7. 动态规划经典题目——最大连续子序列之和

    一.题目 给定K个整数的序列{ N1, N2, -, NK },其任意连续子序列可表示为{ Ni, Ni+1, -, Nj },其中 1 <= i <= j <= K.最大连续子序列 ...

  8. 最大连续子序列和:动态规划经典题目

    [题目] 给定k个整数的序列{N1,N2,...,Nk },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= k.最大连续子序列 ...

  9. 动态规划 HDU1231-------最大连续子序列

    Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i < ...

最新文章

  1. Producing Open Source Software
  2. C# string.Format谨慎使用
  3. C#调用USER32.DLL的API函数
  4. 趣链 BitXHub跨链平台 (2)跨链网络拓扑
  5. C语言项目:扫雷大战精简版
  6. 为什么要free释放内存_为什么在Free Code Camp上列出一份工作要花1,000美元?
  7. 拉普拉斯变换公式表_复变函数之拉普拉斯变换小结
  8. Youki的C++命名规则
  9. java 数字 下划线_数字文字中的下划线– Java 7功能
  10. GdiPlus使用方法
  11. RAPIDXML 中文手册,根据官方文档完整翻译!
  12. 从小白到架构师原来是这样修炼出来的
  13. 三角形的外心 内心 重心 垂心 九点圆心与各圆半径的算法
  14. ICP网站备案查询系统php版 v1.0+(源码)
  15. ***HDU 3237 - Help Bubu(状压DP)
  16. TCP-IP计算机网络基本概述
  17. java subject类的作用_RxJava2 系列-3:使用 Subject
  18. 深度学习平台、CPU和GPU使用
  19. 联通光猫后台 192.168.1.1登录
  20. 企业能源管控平台在钢铁行业能源管理中的应用

热门文章

  1. 用计算机弹100万个可能,计算机应用基础试题与答案-2(选择题100道)(16页)-原创力文档...
  2. linux 脚本 变量为空,Shell脚本中判断输入变量或者参数是否为空的方法
  3. unity android本地推送,Unity安卓本地推送
  4. VS C#窗体程序未能找到Form1.resx文件解决方法
  5. 英特尔的指令集体系结构_对标英特尔的RISC-V大有可为,CPU三分天下格局可期
  6. datagridview滚动条自动滚动_Win32编程基础之滚动条
  7. android开发获取应用本身耗电量_别找了,Android常用自动化工具全在这儿了!
  8. C++知识点36——使用智能指针的注意事项(下)
  9. python hello world程序编写_编写高质量代码 改善Python程序的91个建议
  10. python链表的创建_《大话数据结构》配套源码:链表(Python版)