Skip to content

Commit ba7d77e

Browse files
Create 78. 子集.md
1 parent 6bfbaa0 commit ba7d77e

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

Enumerate/78. 子集.md

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#### 78. 子集
2+
3+
难度:中等
4+
5+
---
6+
7+
给你一个整数数组 `nums` ,数组中的元素 **互不相同** 。返回该数组所有可能的子集(幂集)。
8+
9+
解集 **不能** 包含重复的子集。你可以按 **任意顺序** 返回解集。
10+
11+
**示例 1:**
12+
13+
```
14+
输入:nums = [1,2,3]
15+
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
16+
```
17+
18+
**示例 2:**
19+
20+
```
21+
输入:nums = [0]
22+
输出:[[],[0]]
23+
```
24+
25+
**提示:**
26+
27+
* `1 <= nums.length <= 10`
28+
* `-10 <= nums[i] <= 10`
29+
* `nums` 中的所有元素 **互不相同**
30+
31+
---
32+
33+
循环枚举:
34+
35+
规律:空集的幂集只有空集,每增加一个元素,让之前幂集中的每个集合,追加这个元素,就是新增的子集。
36+
37+
```Java
38+
class Solution {
39+
public List<List<Integer>> subsets(int[] nums) {
40+
List<List<Integer>> res = new ArrayList<>();
41+
res.add(new ArrayList<Integer>());
42+
for(int num: nums){
43+
int sz = res.size();
44+
for(int i = 0; i < sz; i++){
45+
List<Integer> temp = new ArrayList<>(res.get(i));
46+
temp.add(num);
47+
res.add(temp);
48+
}
49+
}
50+
return res;
51+
}
52+
}
53+
```

0 commit comments

Comments
 (0)