最长递增子序列-动态规划dp-51node
来源:互联网 发布:onavo protect mac版 编辑:程序博客网 时间:2024/06/06 05:43
教程地址:点击打开链接
给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的)
例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10。
输入
第1行:1个数N,N为序列的长度(2 <= N <= 50000)第2 - N + 1行:每行1个数,对应序列的元素(-10^9 <= S[i] <= 10^9)
输出
输出最长递增子序列的长度。
输入示例
8516824510
输出示例
5
普通dp解法,时间复杂度O(n^2)
dp[i] 表示前i个序列最长子序列
状态方程dp[i]=max(dp[i],dp[j]+1); 0<j<i;条件判断(a[j]<a[i]);
【解法2】:
dp+二分查找。时间复杂度O(n*log(n))
dp[j],递增序列长度为j时,最后一项最小是多少
每次加入一个元素,找到这个元素能接的长度。比如dp[3]=6,那可以接7(8,9...),然后更新dp[4]=7;
而且以此做法,dp始终会是递增的。
阅读全文
0 0
- 最长递增子序列-动态规划dp-51node
- 最长递增子序列-动态规划dp-(51nod 1134)(POJ 2533)
- 最长递增子序列(动态规划)
- 动态规划:最长单调递增子序列
- 动态规划之最长递增子序列
- 动态规划--最长单调递增子序列
- 最长递增子序列(动态规划)
- 动态规划_最长递增子序列
- 动态规划之最长递增子序列
- 【动态规划】单调递增最长子序列
- 动态规划 - 最长递增子序列
- 最长单调递增子序列--动态规划
- 动态规划 最长递增子序列
- 动态规划最长递增子序列问题
- 动态规划求最长递增子序列
- 动态规划 - 最长递增子序列LIS
- 【动态规划】最长递增子序列
- 最长递增子序列-动态规划
- 【LeetCode】647. Palindromic Substrings
- Android studio 快捷键大全
- JS的一些数据类型的转换
- 惊讶!!!
- NVIDIA VIDEO CODEC SDK开发资源下载
- 最长递增子序列-动态规划dp-51node
- test
- com.github.pagehelper:pagehelper:jar:3.4.2-fix
- 自定义证书调试问题
- 菜鸟进击过程中忽略的知识点
- AngularJS(七)迭代3
- 我的分享:阿里云幸运券(云服务器ECS,关系型数据库RDS,云虚拟主机)
- Could not resolve placeholder 解决方案
- 接口限流算法总结