当前位置:   article > 正文

Golang | Leetcode Golang题解之第46题全排列

Golang | Leetcode Golang题解之第46题全排列

题目:

题解:

  1. func permute(nums []int) [][]int {
  2. var (
  3. n = len(nums)
  4. dfs func(vals []int) // 已选择数 排列为vals 后续回溯继续选择 直至选完
  5. ans [][]int
  6. )
  7. dfs = func(vals []int) {
  8. //边界
  9. if len(vals) == n {
  10. ans = append(ans, vals)
  11. }
  12. //转移 枚举选哪个
  13. for _, x := range nums {
  14. if !slices.Contains(vals, x) { // 不包含才能选
  15. var valsTmp = make([]int, len(vals))
  16. copy(valsTmp, vals)
  17. valsTmp = append(valsTmp, x) // 选
  18. dfs(valsTmp)
  19. }
  20. }
  21. }
  22. dfs([]int{})
  23. return ans
  24. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/481637
推荐阅读
相关标签
  

闽ICP备14008679号