动态规划——最长递增子序列
问题描述:给定数组p,返回p的最长公共递增子序列长度,比如p={ 2,1,5,3,6,4,8,9,7 },最长公共子序列为{1,3,4,8,9},所以返回长度为5.
设dp[i]表示L中以ai为末元素的最长递增子序列的长度。则有如下的递推方程:
这个递推方程的意思是,在求以ai为末元素的最长递增子序列时,找到所有序号在L前面且小于ai的元素aj,即j<i且aj<ai。如果这样的元素存在,那么对所有aj,都有一个以aj为末元素的最长递增子序列的长度dp[i],把其中最大的dp[i]选出来,那么dp[i]就等于最大的dp[i]加上1,即以ai为末元素的最长递增子序列,等于以使dp[i]最大的那个aj为末元素的递增子序列最末再加上ai;如果这样的元素不存在,那么ai自身构成一个长度为1的以ai为末元素的递增子序列。
int lis(int *p,int n){int *dp = new int[n];memset(dp, 0, sizeof(int) * n);dp[0] = 1;for (int i = 1; i < n; i++){dp[i] = 1;for (int j = 0; j < i; j++)if (p[j]<p[i] && dp[j]>dp[i] - 1) dp[i] = dp[j] + 1;}int max = -1;for (int i = 0; i < n; i++)if (dp[i] > max)max = dp[i];return max;
}
动态规划——最长递增子序列相关推荐
- 动态规划 —— 最长递增子序列(LIS)
LIS:Longest Increasing Subseq,最长递增子序列,是不要求该子序列在原始序列中间连续存放的. 为了降低对这一问题的理解难度,既然最长递增子序列不要求子序列位置连续,我们不妨先 ...
- 动态规划 - 最长递增子序列LIS
问题:一个序列有N个数:A[1],A[2],-,A[N],求出最长非降子序列的长度 样例输入:3 1 2 6 5 4 思路: 首先把问题简单化.可以先求A[1],...A[i]的最长非降子序列,令dp ...
- 动态规划示例汇总-Java版(组合硬币、跳台阶、最小路径和、最长递增子序列、最长公共子序列、01背包问题、最小编辑代价)
动态规划算法示例汇总-Java版 组合硬币 Java解题-暴力搜索 Java解题-记忆搜索 Java解题-动态规划(两种写法) 跳台阶 Java解题-暴力递归 Java解题-动态规划 矩阵最小路径和 ...
- leetcode(300)—— Longest Increasing Subsequence(最长递增子序列)
参考 Python 解法: 动态规划 -- 最长递增子序列(LIS) 原题位置:Longest Increasing Subsequence | LeetCode OJ 题目的说明: 严格递增: 子序 ...
- 动态规划(最长递增子序列)---最长递增子序列
最长递增子序列 300. Longest Increasing Subsequence (Medium) 题目描述: 给定一个数组,找到它的最长递增子序列 思路分析: 动态规划思想,定义一个数 ...
- 动态规划算法-04最长递增子序列问题
最长递增子序列问题 简述 经典的动态规划问题. 问题描述 给定一个序列,求解其中长度最长的递增子序列. 问题分析 这种可以向下查询答案的很容易想到动态规划的解法. 要求长度为i的序列Ai={a1,a2 ...
- 动态规划应用--最长递增子序列 LeetCode 300
文章目录 1. 问题描述 2. 解题思路 2.1 动态规划 2.2 二分查找 1. 问题描述 有一个数字序列包含n个不同的数字,如何求出这个序列中的最长递增子序列长度?比如2,9,3,6,5,1,7这 ...
- 最长单调递增子序列_最长递增子序列(动态规划 + 二分搜索)
题目 给定数组arr,返回arr的最长递增子序列 举例:arr = [2,1,5,3,6,4,8,9,7],返回的最长递增子序列为[1,3,4,8,9] 要求:如果arr的长度为N,请实现时间复杂度为 ...
- Leetcode动态规划:300.longest-increasing-subsequence(最长递增子序列)
300. 最长递增子序列 最近一直在攻克动态规划的题,Leetcode的简单题已经刷完,现在冲中等题,这道题算是一个比较经典的题吧,独立完成,虽然花了两个多小时,但收获很多: 思路:动态规划首先要找到 ...
最新文章
- 图灵2010.09书讯
- python做马尔科夫模型预测法_隐马尔可夫模型的前向算法和后向算法理解与实现(Python)...
- 使用Java使用Amazon Simple Queue Service
- tomcat给android发图片,一步一步学会http获取tomcat服务端的图片,在android客户端显示...
- GDI+ 学习记录(28): 图像颜色的数据格式 - PixelFormat
- P3047 [USACO12FEB]附近的牛Nearby Cows
- HUE与Hive的集成
- sqlserver、mysql删除重复数据
- Datalogic得利捷推出物流应用领域全新标杆产品——AV900
- Sublime快捷键大全
- 利用HY-SRF05 超声波模块实现超声波的测距避障
- sem_init函数用法
- unity调用高德地图
- Swift Core Graphics教程之Gradients 与 Context
- Redis list分页功能
- 移民 萨大 计算机本科 移民家园,移民家园
- IT人员转行写小白文可以么?
- Linux内核进程调度时机和过程
- ConcurrentHashMap cas操作以及AtomicLongMap类
- pymysqlApi