标签:lis lex solution input output The seq example tor
Given an unsorted array of integers, find the length of longest increasing subsequence.
Example:
Input:[10,9,2,5,3,7,101,18]
Output: 4 Explanation: The longest increasing subsequence is[2,3,7,101]
, therefore the length is4
.
Note:
Follow up: Could you improve it to O(n log n) time complexity?
分析:求解数组最长递增子序列(严格递增).
思路一:动态规划,时间复杂度:O(n2)。dp[i]表示以下标为i的数字为结尾的最长递增子序列长度。
1 class Solution { 2 public: 3 int lengthOfLIS(vector<int>& nums) { 4 int len = nums.size(); 5 vector<int> dp(len, 0); 6 int maxn = 0; 7 for (int i = 0; i < len; i++) { 8 dp[i] = 1; 9 for (int j = 0; j < i; j++) { 10 if (nums[i] > nums[j]) 11 dp[i] = max(dp[i], dp[j] + 1); 12 } 13 maxn = max(maxn, dp[i]); 14 } 15 return maxn; 16 } 17 };
思路二:动归+二分
leetcode 300. Longest Increasing Subsequence
标签:lis lex solution input output The seq example tor
原文地址:https://www.cnblogs.com/qinduanyinghua/p/11437586.html