491. 非递减子序列
分析
path数组记录当前构建中的子序列- 每当
path长度大于等于2,就加入答案集 - 每次从下标
u开始向后枚举所有可能的数字:- 若当前数字
nums[i]可以接在path的末尾(即递增),就加入递归 - 用一个哈希集合
S记录当前层用过的数字,避免同一层出现重复元素(防止结果中出现重复子序列)
- 若当前数字
时间复杂度
时间复杂度 O(2^n)
空间复杂度
空间复杂度 O(n)
C++代码
|
|
path 数组记录当前构建中的子序列path 长度大于等于 2,就加入答案集u 开始向后枚举所有可能的数字:
nums[i] 可以接在 path 的末尾(即递增),就加入递归S 记录当前层用过的数字,避免同一层出现重复元素(防止结果中出现重复子序列)时间复杂度 O(2^n)
空间复杂度 O(n)
|
|