11,501
社区成员
发帖
与我相关
我的任务
分享
给你一个整数数组 nums
,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。
示例 1:
输入:nums = [1,2,2]
输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]
示例 2:
输入:nums = [0]
输出:[[],[0]]
提示:
1 <= nums.length <= 10
-10 <= nums[i] <= 10
这不是Letcode的吗
new一个Arraylist,并向这个arraylist中添加即向arraylist添加“[]",判断数组是否为空,若为空直接返回arraylist。
若不为空则将数组进行升序排序并向arraylist添加数组第一个元素。做外层for循环,取的当前arraylist长度,判断当前i位置元素与前一个元素是否相等,若不相等内层for循环j=0开始循环,因为retlist.get(0)=""所以inner第一次循环为nums[i],如上第二次循环inner为"nums[0],nums[i]从而实现了不同元素互相组合成新子集。相等则内层for循环一次即向arraylist添加一个元素即“nums[0].......nums[i]。
蒙对了。。。