欢迎光临
我们一直在努力

78leetcode

import java.util.ArrayList;
import java.util.List;

class Solution {
public List<List<Integer>> subsets(int[] nums) {
// 临时集合,存放当前正在构造的子集
List<Integer> t = new ArrayList<>();
// 最终结果,保存所有子集
List<List<Integer>> ans = new ArrayList<>();
// 数组长度
int n = nums.length;

// mask 掩码遍历:0 ~ (2^n – 1)
for (int mask = 0; mask < (1 << n); mask++) {
// 每次构造新子集前清空临时容器
t.clear();

// 检查每一位二进制
for (int i = 0; i < n; i++) {
// 判断 mask 的第 i 位是不是 1
if ((mask & (1 << i)) != 0) {
t.add(nums[i]);
}
}

// 拷贝临时集合存入结果(重点!不能直接 add(t))
ans.add(new ArrayList<>(t));
}

return ans;
}
}

赞(0)
未经允许不得转载:171主机测评 » 78leetcode
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址