当前位置: 首页 > 后端技术 > Python

LeetCode0078.Subsets[Python]

时间:2023-03-26 18:20:20 Python

LeetCode0078.Subsets[Medium][Python][Backtracking]问题LeetCode给定一组不同的整数,nums,返回所有可能的子集(幂集)。注意:解集不能包含重复的子集。示例:输入:nums=[1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]问题讲座给定一组没有重复元素的整数数组nums,返回数组所有可能的子集(幂集)。解释:解集不能包含重复的子集。示例:输入:nums=[1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]思维回溯只是对labuladong的回溯模板做了一点修改。输入importListclass解决方案的Python3代码:defsubsets(self,nums:List[int])->List[List[int]]:res=[]n=len(nums)defbacktrack(nums,start,path):#添加路径res.append(path)#i从开始递增foriinrange(start,n):#回溯并更新路径#path.append([nums[i]])backtrack(nums,i+1,path+[nums[i]])#path.pop()backtrack(nums,0,[])returnres我有点怀疑,回溯更新路径的地方下面的代码没有运行正确的结果,原因有尚未找到:foriinrange(start,n):#回溯并更新路径path.append(nums[i])backtrack(nums,i+1,path)path.pop()GitHublinkPython