Golang | Leetcode Golang题解之第90题子集II

题目:

题解:

Go 复制代码
func subsetsWithDup(nums []int) (ans [][]int) {
    sort.Ints(nums)
    n := len(nums)
outer:
    for mask := 0; mask < 1<<n; mask++ {
        t := []int{}
        for i, v := range nums {
            if mask>>i&1 > 0 {
                if i > 0 && mask>>(i-1)&1 == 0 && v == nums[i-1] {
                    continue outer
                }
                t = append(t, v)
            }
        }
        ans = append(ans, append([]int(nil), t...))
    }
    return
}
相关推荐
wsoz1 小时前
Leetcode普通数组-day5、6
c++·算法·leetcode·数组
y = xⁿ1 小时前
【LeetCode】双指针:同向快慢针
算法·leetcode
codeejun1 小时前
每日一Go-44、Go网络栈深度拆解--从 TCP 到 HTTP 的资源复用艺术
网络·tcp/ip·golang
倦王1 小时前
力扣日刷47
算法·leetcode·职场和发展
Q741_1472 小时前
每日一题 力扣 3655. 区间乘法查询后的异或 II 模拟 分治 乘法差分法 快速幂 C++ 题解
c++·算法·leetcode·模拟·快速幂·分治·差分法
GDAL3 小时前
Go Channel `close()` 深入全面讲解
golang·通道·close
abant23 小时前
leetcode 239 单调队列 需要一些记忆
算法·leetcode·职场和发展
Tomhex4 小时前
Golang内置函数总结
golang·go
XMYX-05 小时前
05 - Go 的循环与判断:语法、用法与最佳实践
开发语言·golang
Little At Air5 小时前
LeetCode 30. 串联所有单词的子串 | 困难 C++实现
算法·leetcode·职场和发展