递增子序列
给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。
解题思路
方法一深度优先搜索+哈希表
1、定义返回列表res保存所有递增子序列:
2、深度优先搜索(dfs),参数:nums,tmp保存当前递增子序列:
(1)如果当前递增子序列符合要求:res增加tmp
(2)定义字典保存状态,避免重复!
(3)inx, i循环nums的索引值对。
a、如果当前值在以前已被遍历:跳出当前循环,开始下一次循环。
b、如果i加入tmp可以形成递增子序列:
i为键,1为值加入字典;
递归:
nums = nums[inx+1:];
tmp = tmp+[i]。
3、调用dfs:
nums = nums
tmp = []
4、返回res
代码
class Solution:
def findSubsequences(self, nums: List[int]) -> List[List[int]]:
res =