46. 全排列)

简单粗暴回溯法

func permute(nums []int) [][]int {
	res := [][]int{}
	visited := map[int]bool{}

	var dfs func(path []int)
	dfs = func(path []int) {
		if len(path) == len(nums) {
			temp := make([]int, len(path))
			copy(temp, path)
			res = append(res, temp)
			return
		}
		for _, n := range nums {
			if visited[n] {
				continue
			}
			path = append(path, n)
			visited[n] = true
			dfs(path)
			path = path[:len(path)-1]
			visited[n] = false
		}
	}
	dfs([]int{})
	return res
}

相关文章:

  • 2021-06-02
  • 2022-12-23
  • 2021-09-27
  • 2021-06-20
  • 2021-08-29
  • 2021-08-25
  • 2022-12-23
猜你喜欢
  • 2021-08-14
  • 2020-04-26
  • 2021-07-23
  • 2021-07-22
  • 2021-06-24
  • 2021-08-09
相关资源
相似解决方案