300. Longest Increasing Subsequence
2017-12-26 18:14
120 查看
1、题目描述
输入一个数组,返回最长的上升子序列长度。
2、思路
动归。dp[i]指的是以nums[i]结尾的最长的上升子序列长度。
dp[i] = max(dp[j]) + 1, 0<=j < i, nums[j]<nums[j].
dp[0] = 1.
ans = max(dp[i])
时间复杂度 O(n^2).
3、代码
动归:
输入一个数组,返回最长的上升子序列长度。
2、思路
动归。dp[i]指的是以nums[i]结尾的最长的上升子序列长度。
dp[i] = max(dp[j]) + 1, 0<=j < i, nums[j]<nums[j].
dp[0] = 1.
ans = max(dp[i])
时间复杂度 O(n^2).
3、代码
动归:
int lengthOfLIS(vector<int>& nums) { int n=nums.size(); if(n==0) return 0; int dp ; dp[0]=1; int ans=1; for(int i=1;i<n;i++){ int m = 0; for(int j=0;j<i;j++){ if(nums[j]<nums[i]&&dp[j]>m) m=dp[j]; } dp[i]=m+1; if(dp[i]>ans) ans=dp[i]; } return ans; }
相关文章推荐
- Finding the Longest Nondecreasing Subsequence of A Given Sequence:An analysis of dynamic programming
- Pku1887----Testing the CATCHER (经典动态规划题:最长下降子序列),,,,,捎带pku2533---Longest Ordered Subsequence
- POJ 2533 Longest Ordered Subsequence(DP动态规划)
- POJ 2533 Longest Ordered Subsequence
- POJ 2533 Longest Ordered Subsequence
- 最长公共子序列(Longest Common Subsequence) 算法的Java实现
- ZOJ 1733 Common Subsequence【DP】
- UVA 10405 Longest Common Subsequence
- HDOJ_1159:Common Subsequence 解题报告
- 最长上升子序列 LIS(Longest Increasing Subsequence)
- HDU 1159 Common Subsequence(还是DP)
- HDU 1159 Common Subsequence DP 又一道水题
- hdu 1159 Common Subsequence 最长公共子序列
- pat 1007 Maximum Subsequence Sum
- uva 10405 Longest Common Subsequence
- 最长公子序列 Longest Common Subsequence
- UVa 10405 - Longest Common Subsequence
- 最长递增子序列 (Longest Increasing Subsequence)
- Maximum Subsequence Sum Problem最大顺序子序列求和
- LightOJ 1277 Looking for a Subsequence (LIS)