给定一个整数数组 nums,求最长严格递增子序列的长度。请用动态规划或二分法回答。
考察说明
考察经典 LIS 问题的动态规划解法、时间复杂度分析及二分优化
回答思路
- 定义 dp[i] 为以 nums[i] 结尾的最长递增子序列长度
- 状态转移:dp[i]=max(dp[j]+1) 其中 j<i 且 nums[j]<nums[i]
- 初始化为 1,最终结果为 max(dp)
- 时间复杂度 O(n^2),优化方法为贪心+二分 O(n log n)
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。