最长递增子序列的长度
已关闭dadingPython / C++入场费 3 金币0 次提交
题目描述
给定一个整数数组 nums,找到其中最长严格递增子序列的长度。子序列不要求连续,但要求元素在原数组中的相对顺序保持不变。例如数组 [10,9,2,5,3,7,101,18] 的最长递增子序列为 [2,3,7,101],长度为 4。
输入格式
第一行一个整数 n(1 ≤ n ≤ 2000),表示数组长度。第二行 n 个整数,表示数组元素(-10000 ≤ nums[i] ≤ 10000),整数之间用空格分隔。
输出格式
输出一个整数,表示最长严格递增子序列的长度。
输入输出样例
样例 1
输入:
8 10 9 2 5 3 7 101 18
输出:
4
说明/提示
考虑动态规划或二分查找两种解法,O(n log n) 的解法更优