1 Star 0 Fork 1

dllearn/geektime-algorithm-learn

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
f.go 635 Bytes
一键复制 编辑 原始数据 按行查看 历史
dryyun 提交于 2022-04-25 11:07 +08:00 . 0046
package permutations
// 46. 全排列
// https://leetcode-cn.com/problems/permutations/
func permute(nums []int) [][]int {
if len(nums) == 0 {
return [][]int{}
}
used := make([]bool, len(nums))
res := make([][]int, 0)
tmp := make([]int, 0)
dfs(nums, tmp, &res, &used)
return res
}
func dfs(nums []int, tmp []int, res *[][]int, used *[]bool) {
if len(tmp) == len(nums) {
*res = append(*res, append([]int{}, tmp...))
return
}
for i := 0; i < len(nums); i++ {
if !(*used)[i] {
(*used)[i] = true
tmp = append(tmp, nums[i])
dfs(nums, tmp, res, used)
tmp = tmp[:len(tmp)-1]
(*used)[i] = false
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/dllearn/geektime-algorithm-learn.git
git@gitee.com:dllearn/geektime-algorithm-learn.git
dllearn
geektime-algorithm-learn
geektime-algorithm-learn
55fa3f222b36

搜索帮助