题目:递归子序列
题解:
代码:
class Solution(object):
def findSubsequences(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
res = []
temp = []
if not nums:
return res
def backtracking(nums, startIndex):
if len(temp) >= 2 :
res.append(temp[:])
# 深度遍历中每一层都会有一个全新的usage_list用于记录本层元素是否重复使用
usage_list = set()
for i in range(startIndex, len(nums)):
if ( temp and nums[i] < temp[-1]) or nums[i] in usage_list:
continue
usage_list.add(nums[i])
temp.append(nums[i])
backtracking(nums, i+ 1)
temp.pop()
backtracking(nums, 0)
print(res)
return res