返回题库|

最长递增子序列

中等华为

最长递增子序列

中等华为动态规划

题目描述

给你一个整数数组 nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。要求实现时间复杂度为 O(n log n) 的算法。使用贪心加二分查找的方法:维护一个 tails 数组,tails[i] 表示长度为 i+1 的递增子序列的最小末尾元素。

示例

输入:nums = [10, 9, 2, 5, 3, 7, 101, 18]
输出:4
solution.ts
输出结果
点击「运行代码」按钮查看结果...