Golang | Leetcode Golang题解之第47题全排列II

题目:

题解:

Go 复制代码
func permuteUnique(nums []int) (ans [][]int) {
    sort.Ints(nums)
    n := len(nums)
    perm := []int{}
    vis := make([]bool, n)
    var backtrack func(int)
    backtrack = func(idx int) {
        if idx == n {
            ans = append(ans, append([]int(nil), perm...))
            return
        }
        for i, v := range nums {
            if vis[i] || i > 0 && !vis[i-1] && v == nums[i-1] {
                continue
            }
            perm = append(perm, v)
            vis[i] = true
            backtrack(idx + 1)
            vis[i] = false
            perm = perm[:len(perm)-1]
        }
    }
    backtrack(0)
    return
}
相关推荐
y***03171 小时前
Go基础之环境搭建
开发语言·后端·golang
2401_893326621 小时前
力扣133.克隆图
算法·leetcode·职场和发展
吃着火锅x唱着歌1 小时前
LeetCode 3623.统计梯形的数目 I
算法·leetcode·职场和发展
武子康1 小时前
AI研究-133 Java vs Kotlin/Go/Rust/Python/Node:2025 详细对比分析 定位与取舍指南
java·javascript·python·golang·rust·kotlin·node
吃着火锅x唱着歌2 小时前
LeetCode 2364.统计坏数对的数目
数据结构·算法·leetcode
apocelipes2 小时前
Linux的binfmt_misc机制
linux·c语言·c++·python·golang·linux编程·开发工具和环境
Elias不吃糖2 小时前
克隆图(LeetCode 133)——用数组做映射的 DFS 解法
c++·算法·leetcode·深度优先
小白程序员成长日记3 小时前
力扣每日一题 2025.11.30
数据结构·算法·leetcode
u***28473 小时前
golang debug调试
开发语言·后端·golang
CoderYanger3 小时前
递归、搜索与回溯-穷举vs暴搜vs深搜vs回溯vs剪枝:13.子集
java·算法·leetcode·机器学习·剪枝·1024程序员节