其他分享
首页 > 其他分享> > 【LeetCode】90. 子集 II(错题2刷)

【LeetCode】90. 子集 II(错题2刷)

作者:互联网

0

func subsetsWithDup(nums []int) [][]int {
    res := [][]int{}
    cur := []int{}
    used := make([]bool, len(nums))

    var backtracking func([]int, int)
    backtracking = func(nums []int, start int) {
        temp := make([]int, len(cur))
        copy(temp, cur)
        res = append(res, temp)

        for i := start; i < len(nums); i++ {
            if i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false {
                continue
            } else {
                cur = append(cur, nums[i])
                used[i] = true
                backtracking(nums, i + 1)
                cur = cur[: len(cur) - 1]
                used[i] = false
            }
        }
    }

    sort.Ints(nums)
    backtracking(nums, 0)
    return res
}

1

标签:used,cur,nums,int,res,II,错题,90,backtracking
来源: https://blog.csdn.net/weixin_40910614/article/details/123032589