代码拉取完成,页面将自动刷新
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
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。