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
}
相关推荐
我不是懒洋洋2 小时前
【经典题目】栈和队列面试题(括号匹配问题、用队列实现栈、设计循环队列、用栈实现队列)
c语言·开发语言·数据结构·算法·leetcode·链表·ecmascript
进击的荆棘3 小时前
递归、搜索与回溯——二叉树中的深搜
数据结构·c++·算法·leetcode·深度优先·dfs
ALex_zry3 小时前
go-zero Redis缓存封装与Model层设计
redis·缓存·golang·气象
人道领域3 小时前
【LeetCode刷题日记】:151翻转字符串的单词(两种解法)
java·开发语言·算法·leetcode·面试
进击的荆棘3 小时前
递归、搜索与回溯——回溯
数据结构·c++·算法·leetcode·dfs
XMYX-017 小时前
17 - Go 通道 Channel 底层原理 + 实战详解
开发语言·golang
cpp_250118 小时前
P2347 [NOIP 1996 提高组] 砝码称重
数据结构·c++·算法·题解·洛谷·noip·背包dp
加农炮手Jinx19 小时前
LeetCode 146. LRU Cache 题解
算法·leetcode·力扣
加农炮手Jinx19 小时前
LeetCode 128. Longest Consecutive Sequence 题解
算法·leetcode·力扣
旖-旎19 小时前
递归(汉诺塔问题)(1)
c++·学习·算法·leetcode·深度优先·递归