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
}
运行结果

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