LeetCode-078-Subsets
1.题目:
子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
1 | 输入: nums = [1,2,3] |
2.解题
这是一个传统的求集合子集的问题,需要注意:不要忘掉空子集;集合中不能有重复元素,包括子集也不能有重复元素.
对于这道题我们可以使用递归的思想解答:
我们先来观察几组结果
1 | 输入:nums = []; |
我们发现,实际上nums = [1]
的解就是在num = []
的所有解上加上1
;nums = [1, 2]
的解就是在num = [1]
的所有解上加上2
;所以我们只需要遍历nums
中的每一个元素,并将解集
result
中的每一个解加上num[i]
作为新的解集添加到新的解集中.
代码:
1 | class Solution { |