JAVA算法练习题day49
56.子集
class Solution(object):def subsets(self, nums):""":type nums: List[int]:rtype: List[List[int]]"""self.ans = []#回溯参数:used,path,#回溯终止条件:暂时没想到,并且不知道怎么去记录枝干上面的单个答案#因为是组合,不是排序,所以要去重,或者记录同一层的前序used 对于前序used=True的不用它(那条支路作废)——关键:使用startIndexself.path = []def backtracking(nums,startIndex):#一定要注意这里的语法self.ans.append(self.path[:])if startIndex>=len(nums):returnfor i in range(startIndex,len(nums)):self.path.append(nums[i])backtracking(nums,i+1)self.path.pop()backtracking(nums,0)return self.ans