Leetcode—47. 全排列 II【中等】

2025每日刷题(245)

Leetcode---47. 全排列 II

实现代码

go 复制代码
import "slices"
func permuteUnique(nums []int) [][]int {
    n := len(nums)
    slices.Sort(nums)
    var ans [][]int
    var path []int
    var dfs func(idx int)
    visited := make(map[int]bool)
    dfs = func(idx int) {
        if idx == n {
            tmp := make([]int, n)
            copy(tmp, path)
            ans = append(ans, tmp)
        }
        for i := 0; i < n; i++ {
            if visited[i] || (i > 0 && nums[i] == nums[i - 1] && !visited[i - 1]) {
                continue
            }
            visited[i] = true
            path = append(path, nums[i])
            dfs(idx + 1)
            path = path[:len(path) - 1]
            visited[i] = false
        }
    }
    dfs(0)
    return ans
}

运行结果

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐
张张努力变强2 分钟前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
万岳科技系统开发3 分钟前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
独断万古他化6 分钟前
【Spring 原理】Bean 的作用域与生命周期
java·后端·spring
张登杰踩8 分钟前
MCR ALS 多元曲线分辨算法详解
算法
我爱加班、、16 分钟前
Websocket能携带token过去后端吗
前端·后端·websocket
YuTaoShao17 分钟前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法一)排序+滑动窗口
算法·leetcode·排序算法
波波00725 分钟前
每日一题:.NET 的 GC是如何分代工作的?
算法·.net·gc
风暴之零34 分钟前
变点检测算法PELT
算法
深鱼~35 分钟前
视觉算法性能翻倍:ops-cv经典算子的昇腾适配指南
算法·cann
李斯啦果35 分钟前
【PTA】L1-019 谁先倒
数据结构·算法