90 Subsets II

给定一个包含重复项的数组,返回所有不重复的子集
回溯法,深度优先遍历,去重 faster than 100%

/**
 * @param {number[]} nums
 * @return {number[][]}
 */
var subsetsWithDup = function(nums) {
    var res = [[]]
    if(nums.length === 0) return res
    nums.sort((a, b) =>  a - b)
    dfs(nums, 0, [], res)
    return res
};
var dfs = function(nums, flag, sub, res){
    for(var i = flag; i < nums.length; i++){
        sub.push(nums[i])
        res.push(sub.slice())
        dfs(nums, i + 1, sub, res)
        sub.pop()
        while(nums[i] === nums[i + 1]) i++
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容