0%

LeetCode-78

题目

结果

代码

一、

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> ans = new LinkedList<>();
for (int i = 0; i < 1 << nums.length; i++) {
StringBuilder binary = new StringBuilder(Integer.toBinaryString(i));
while (binary.length() < nums.length) {
binary.insert(0, "0");
}
List<Integer> tmp = new LinkedList<>();
for (int j = 0; j < binary.length(); j++) {
if (binary.charAt(j) == '1') {
tmp.add(nums[j]);
}
}
ans.add(tmp);
}
return ans;
}
}

二、

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> ans = new LinkedList<>();
for (int i = 0; i < 1 << nums.length; i++) {
List<Integer> tmp = new LinkedList<>();
for (int j = 0; j < nums.length; j++) {
int flag = 1 << j & i;
if (flag != 0) {
tmp.add(nums[j]);
}
}
ans.add(tmp);
}
return ans;
}
}