class Solution(object):
def findSubsequences(self, nums):"""
:type nums: List[int]:rtype: List[List[int]]"""
# 本题求自增子序列,所以不能改变原数组顺序
res =[]
path =[]
def backsum(nums,start):iflen(path)>=2:
res.append(path[:])if start>=len(nums):return
# 深度遍历中每一层都会有一个全新的usage_list用于记录本层元素是否重复使用
used =set() #记录本层元素是否使用
for i in range(start,len(nums)):if path and nums[i]< path[-1] or nums[i] in used:continue
used.add(nums[i])
path.append(nums[i])backsum(nums,i+1)
path.pop()backsum(nums,0)return res