class Solution { public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> res = new ArrayList<List<Integer>>(); for (int i = 0; i < (1 << nums.length); i++) { List<Integer> sub = new ArrayList<Integer>(); for (int j = 0; j < nums.length; j++) if (((i >> j) & 1) == 1) sub.add(nums[j]); res.add(sub); } return res; } }
时间: 2023-04-01 08:03:33 浏览: 104
java求解集合的子集的实例
我可以回答这个问题。这是一个求给定数组的所有子集的算法,使用了位运算。具体实现是通过枚举所有可能的子集,将每个子集转换为二进制数,然后根据二进制数中的每一位来判断该子集是否包含对应的元素。最终将所有符合条件的子集加入到结果列表中返回。
阅读全文