leetcode78子集。回溯击败100% python 代码+思路

Honoria ·
更新时间:2024-11-11
· 812 次阅读

""" 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] """ ''' 对于每个元素都可以放入或者不放入 对于第一个元素1,最后的结果就两种:放1或者不放1 因此就是一种回溯思想 ''' # 结果以列表的列表返回 class Solution: def subsets(self, nums): ans = [] item =[] def helper(i, item, ans): if i == len(nums): return item.append(nums[i]) # 或者浅拷贝实现append # real = item.copy() # ans.append(real) ans.append(item[:]) helper(i + 1, item, ans) item.pop() helper(i + 1, item, ans) ans.append(item[:]) helper(0, item, ans) return ans print(Solution().subsets([1,2,3]))
作者:Xzreal_dlut



leetcode 子集 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号