给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/subsets 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
这个代码需要注释 搞了我半天时间
public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> res = new ArrayList<>(); res.add(new ArrayList<>()); for (int i = 0; i < nums.length; i++) { int size = res.size();//这个size长度必须先确定 要不然res会add 一直报执行超时 就这个地方 for (int j = 0; j < size; j++) { List<Integer> temp = new ArrayList<>(res.get(j));//这个需要新建一个temp 反正转移直接用报错还是结果不对 temp.add(nums[i]); res.add(temp); } } return res; }