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
}
相关推荐
一只齐刘海的猫5 分钟前
【Leetcode】 接雨水
java·算法·leetcode
菜菜的顾清寒31 分钟前
力扣HOT(100)54多维动态规划-最长公共子序列
算法·leetcode·动态规划
特立独行的猫a3 小时前
鸿蒙PC搭建Go开发环境与网络服务实战全记录
华为·golang·harmonyos·homebrew·鸿蒙pc
8Qi83 小时前
LeetCode 198:打家劫舍(House Robber)—— 题解 ✅
算法·leetcode·动态规划
GDAL3 小时前
{}之于Go语言意味着什么
golang
8Qi812 小时前
LeetCode 235. 二叉搜索树的最近公共祖先(LCA)
算法·leetcode·二叉树·递归·二叉搜索树·lca·迭代
李燚13 小时前
Eino 的 ReAct 循环是怎么跑起来的:图、节点、分支
golang·agent·react·ai-agent
8Qi814 小时前
LeetCode 494:目标和(Target Sum)—— 题解 ✅
算法·leetcode·职场和发展·动态规划·01背包
这料鬼有毒16 小时前
二刷hot100-78.子集
算法·leetcode·职场和发展
Hiter_John17 小时前
Golang的运算符
开发语言·后端·golang