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 小时前
LeetCode经典算法面试题 #21:合并两个有序链表(迭代法、原地合并法等多种实现方案详解)
算法·leetcode·链表·优先队列·迭代法·合并两个有序链表·原地合并
wen__xvn2 小时前
基础算法集训第20天:Dijkstra
算法·图论
Wyy_9527*2 小时前
行为型设计模式——状态模式
java·spring boot·后端
a程序小傲2 小时前
京东Java面试被问:基于Gossip协议的最终一致性实现和收敛时间
java·开发语言·前端·数据库·python·面试·状态模式
程序员小白条2 小时前
面试 Java 基础八股文十问十答第二十二期
java·开发语言·数据库·面试·职场和发展·毕设
Yiyaoshujuku2 小时前
疾病的发病率、发病人数、患病率、患病人数、死亡率、死亡人数查询网站及数据库
数据库·人工智能·算法
wen__xvn2 小时前
基础算法集训第18天:深度优先搜索
算法·深度优先·图论
梅梅绵绵冰2 小时前
springboot初步2
java·spring boot·后端
jiang_changsheng2 小时前
comfyui节点插件笔记总结新增加
人工智能·算法·计算机视觉·comfyui