最大子序列问题在笔试中已经遇上过很多次了,今天只是想简单的总结一下,最大子序列主要分为两种类型:一种是子序列可以不连续的最大子序列和(这个比较简单,思路就是累加非负数即可)、另一种是子序列必须连续的最大子序列和(这个稍微复杂是一个动态规划问题),下面就简单就这两种问题做一下总结,具体看如下实现:

#!usr/bin/env python
#encoding:utf-8'''
__Author__:沂水寒城
功能:最大子序列问题
'''def test_func(num_list):'''求数组中最大子序列的和,子序列可以不连续(也可以写成if判断语句只累加整数即可)'''length=len(num_list)dp=[0]*lengthdp[0]=num_list[0]for i in range(length):dp[i]=max(dp[i-1]+num_list[i], dp[i-1])print dp[-1]def test_func2(num_list):'''求数组中最大子序列的和,子序列必须连续'''length=len(num_list)max_value=-10000000000tmp=0for i in range(length):tmp=max(tmp+num_list[i], num_list[i])max_value=max(max_value, tmp)print max_valueif __name__ == '__main__':num_list=[-4 , 3 ,56 , -15 , 34 , 0 , -14 , 4]test_func(num_list)print '----------------------------------------------------'test_func2(num_list)

结果如下;

97
----------------------------------------------------
78
[Finished in 0.3s]

当然最大子序列和问题也可以转化为最大子序列乘积问题

python求解最大子序列问题,子序列可连续或不连续相关推荐

  1. 用Python计算最长公共子序列和最长公共子串

    如何用Python计算最长公共子序列和最长公共子串 1. 什么是最长公共子序列?什么是最长公共子串? 1.1. 最长公共子序列(Longest-Common-Subsequences,LCS) 最长公 ...

  2. 最长公共子序列、最长连续公共子序列、最长递增子序列

    面试中除了排序问题,还会经常出现字符串的子序列问题,这里讲解使用动态规划解决三个常见的子序列问题: 1.最长公共子序列问题(LCS,longest-common-subsequence problem ...

  3. 求最长公共子序列python_用Python计算最长公共子序列和最长公共子串

    1. 什么是最长公共子序列?什么是最长公共子串? 1.1. 最长公共子序列(Longest-Common-Subsequences,LCS) 最长公共子序列(Longest-Common-Subseq ...

  4. prefixspan是挖掘频繁子序列,子序列不一定是连续的,当心!!!

    序列模式挖掘是从序列数据库中发现频繁子序列作为模式. 子序列与频繁序列 了解了序列数据的概念,我们再来看看上面是子序列.子序列和我们数学上的子集的概念很类似,也就是说,如果某个序列A所有的项集在序列B ...

  5. 动态规划——子序列问题——连续?不连续?

    动态规划--子序列问题--连续?不连续? 子序列问题是动态规划的一个常考题型,本篇文章主要介绍 子序列(连续)和子序列(不连续)两个问题.连续和不连续指的是子序列是否是连续的,还是说中间是可以有间隔的 ...

  6. python 物理学中的应用_利用python求解物理学中的双弹簧质能系统详解

    前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...

  7. python代码物理_利用python求解物理学中的双弹簧质能系统详解

    前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...

  8. 最大公约数python语言算法_使用Python求解最大公约数的实现方法

    这篇文章主要介绍了使用Python求解最大公约数的实现方法,包括用Python表示欧几里得算法和Stein算法的求解原理. 1. 欧几里德算法 欧几里德算法又称辗转相除法, 用于计算两个整数a, b的 ...

  9. 利用python求解节点介数和边介数

    利用python求解节点介数和边介数 利用networkx里面的函数betweenness_centrality(G)来求解节点介数和函数edge_betweenness_centrality(G)来 ...

  10. python最大公约数计算_使用Python求解最大公约数的实现方法

    1. 欧几里德算法 欧几里德算法又称辗转相除法, 用于计算两个整数a, b的最大公约数.其计算原理依赖于下面的定理: 定理: gcd(a, b) = gcd(b, a mod b) 证明: a可以表示 ...

最新文章

  1. 一行代码都不写!Github 博客小白版入门教程
  2. mycat mysql 存储过程_MyCat 学习笔记 第十三篇.数据分片 之 通过HINT执行存储过程...
  3. 工作流引擎JFlow与activiti 对比分析(一)5种基本控制流模式的对比
  4. mysql导入分卷_php实现mysql备份恢复分卷处理的方法_PHP
  5. 用 python 制作高逼格的数学动画
  6. true,false组合问题
  7. 爬虫用java还是python_网络爬虫是用python比较好,还是Java比较好呢?
  8. mysql 存储过程创建以及调用
  9. H.264视频编码在VC .Net中的实现(H264全文)
  10. 2699元起!格力首款5G手机悄然上架:骁龙765G处理器
  11. mysql 输入密码后闪退_iPhone抹除还原后需要输入账号密码怎么办?
  12. 书籍-Java性能调优指南
  13. 以4%参数量比肩GPT-3!Deepmind 发布检索型 LM,或将成为 LM 发展新趋势!?
  14. 运维学习:常用运维工具
  15. erroe C1083:无法打开包括文件(源文件)
  16. 2019年广东当代优质民办学校获奖名单公布
  17. 2345广告,够了!
  18. 使用puppet自动化升级安全程序
  19. 2023年全国最新二级建造师精选真题及答案
  20. 蓝牙驱动卸载后自动安装_在安卓旧手机上安装「人人影视客户端」实现收藏后自动下载...

热门文章

  1. Python 多进程multiprocessing
  2. linux怎么实时查看目录下是否有文件生成
  3. 【译】使用 ndb 调试 node 应用
  4. 6月28(docker)
  5. 集群介绍 keepalived介绍 用keepalived配置高可用集群
  6. Zookeeper中的ACL
  7. 团队开发时该如何同步数据库变更到本地
  8. 《版式设计——日本平面设计师参考手册》—第1章置入其他格式的文件
  9. mysql cluster集群安装全纪录
  10. ubuntu下MySQL的安装及远程连接配置(转)