最长递增子序列的长度(编程之美)
题目描述:
- 编程之美2.16中,求数组最长递增子序列的长度,例如数组为:1,-1,2,-3,4,-5,6,-7,那么最长递增序列是:1,2,4,6,长度是4.
- 可以看出,子序列不一定是连续的
解题思路:
- 动态规划问题;
- 使用 i 表示向前遍历的位置,当 i=1时,序列为 1,长度为1;
- 当 i=2时,序列为 1 或者 -1,长度仍为1;
- 当 i=3时, 序列为 1,2或者 -1,2,长度为2;
- 因此,初始化最大长度为1,以第i个元素结尾的最长子序列的长度为 max(ret[j] + 1, ret[i])
- 时间复杂度为O(n*n)
int LIS(vector<int> & nums)
{int n = nums.size();vector<int> ret(n, 1);for(int i = 0; i < n; ++i){for(int j = 0; j < i; ++j){if(nums[i] > nums[j] && ret[j] + 1 > ret[i])ret[i] = ret[j] + 1;}}for(int i = 1; i < n; ++i){if(ret[i] < ret[i - 1])swap(ret[i], ret[i - 1]);}return ret[n - 1];
}
最长递增子序列的和:
def Sum(A):n = len(A)ret = []for i in range(n):ret.append(A[i])for i in range(1,n):for j in range(i):if A[i] > A[j] and ret[j] + A[i] > ret[i]:ret[i] = ret[j] + A[i]#print A[i]return max(ret)
最长递增子序列的长度(编程之美)相关推荐
- 求数组中最长递增子序列的长度
题目:写一个时间复杂度尽可能低的程序,求一个一维数组(N个元素)中最长递增子序列的长度. 例:在序列[1, -1, 2, -3, 4, -5, 6, -7]中,其最长递增子序列的长度为4([1, 2, ...
- c语言找出递增子数组的长度,编程之美2.16 数组中最长递增子序列的长度
改进的方法看的头大了却还是不清楚,哎...搞算法的苦啊,纠结啊. 编程之美这本书里面就有关于这道题的一些解法,求一个一位数组中的最长序列的长度.例如,在序列1,3,2中,最长递增序列是1,3. 这道题 ...
- python最大连续递增子列_最长递增子序列(LIS)解法详述
求数组中最长递增子序列(Longest Increasing Subsequence, LIS) LIS问题是算法中的经典题目,传统的解法是使用动态规划,时间复杂度是O(n^2):改进的方法时间复杂度 ...
- 跟着编程之美学算法——最长递增子序列(转)
之前学习了动态规划中最基本的问题,最长公共子序列,具体解法,见前前一篇博客: http://www.cnblogs.com/liyukuneed/archive/2013/05/22/3090597. ...
- 严格递增和非严格递增最长递增子序列长度
严格递增 最长递增子序列,给定一个无序整数数组nums(字符串也可以,不重要),给出最长严格递增子序列的长度.比如输入[1, 2 , 1, -1, 1, 4, 0],输出3,最长递增子序列[1, 2, ...
- [网络流24题] 最长递增子序列
[网络流24题] 最长递增子序列 «问题描述: 给定正整数序列x1,..., xn. (1)计算其最长递增子序列的长度s. (2)计算从给定的序列中最多可取出多少个长度为s的递增子序列. (3)如果允 ...
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 (转)...
作者:寒小阳 时间:2013年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/11969497. 声明:版权所有,转载请注明出处,谢谢 ...
- 动态规划设计方法详解最长递增子序列
很多读者反应,就算看了前文动态规划详解,了解了动态规划的套路,也不会写状态转移方程,没有思路,怎么办?本文就借助「最长递增子序列」来讲一种设计动态规划的通用技巧:数学归纳思想. 最长递增子序列(Lon ...
- 每日一题(79) - 求数组中最长递增子序列
题目来自编程之美 题目 思路(1) 动态规划(复杂度为n^2) 方程: F[i]:表示以nArr[i]为结尾的最长递增子序列的最大长度. F[i] = Max(F[j]) + 1 && ...
最新文章
- 使用Gradle整合SpringBoot+Vue.js-开发调试与打包
- zabbix之微信告警(python版):微信个人报警,微信企业号告警脚本
- B2c商城图片尺寸设定研究 尺寸应该多大合适
- EasyUI-DataGrid之批量删除
- jzoj4485-[GDOI 2016 Day1]第一题 中学生数学题【数学】
- deepin安装java_Deepin安装Eclipse
- C# 6.0 (C# vNext) 的新功能:Exception-Handling Improvements
- 从零开始学keras之多分类问题
- 列式存储ClickHouse(二)接口
- Ubantu16.04LTS麒麟版:取消登录界面的客人回话
- d1800芯片_基于D1800的收音/对讲机设计制作
- Android开机启动广播
- 背包那些经典的例子( 上 )
- 2020年个人所得税计算方法(附带计算器)
- 淘宝内乱持续 QQ盛大京东“趁火打劫”
- 如何使用js懒加载图片|如何使用jquery.lazyload.js|网页优化|如何提高网页加载速度
- Java学习笔记 (韩顺平循序渐进学Java零基础篇)——01
- ES6语法总结(21)--Generator函数的异步应用
- 计算机系统使用的cd-rom,如何将CD-ROM的内容复制到计算机[复制]
- 常见滤波汇总(KF、EKF、UKF和PF)
热门文章
- asp.net确认对话框_在ASP.NET或Trace.Fail中防止服务器端对话框被认为有害
- 一次对JDK进行减肥的记录
- ZEDmini在Jetson AGX Xavier中使用ROS运行
- Python基于Django停车场预约停车计费系统设计
- boost::any实现分析
- [中国企业报]小灵通“末路”
- 不良资产处置(五):不同国家不良资产处置案例分析
- Flink大数据实时计算系列-Flink的Sliding Windows使用
- 2019ACM西安邀请赛总结
- 意法半导体(ST)加入RT-Thread会员计划,正式成为金牌会员