给定一个整数数组 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
}