给定一个整数数组 nums ,其中可能包含重复元素,请你返回这个数组的所有可能子集。
返回的答案中不能包含重复的子集,将答案按字典序进行排序。
数据范围:数组长度满足 ,数组中元素大小满足
package main import "sort" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型二维数组 */ func subsets( nums []int ) [][]int { sort.Ints(nums) ans:=[][]int{} var dfs func([]int,int) dfs=func(path []int,idx int){ tmp:=make([]int,len(path)) copy(tmp,path) ans=append(ans,tmp) for i:=idx;i<len(nums);i++{ if i>idx&&nums[i]==nums[i-1]{ continue } path=append(path,nums[i]) dfs(path,i+1) path=path[:len(path)-1] } } dfs([]int{},0) return ans }