MCPcopy Create free account
hub / github.com/neetcode-gh/leetcode / permute

Function permute

go/0046-permutations.go:3–25  ·  view source on GitHub ↗
(nums []int)

Source from the content-addressed store, hash-verified

1package main
2
3func permute(nums []int) [][]int {
4 n := len(nums)
5 ans := make([][]int, 0)
6 curr := make([]int, 0, n)
7 vis := make(map[int]int)
8 var backtrack func(idx int)
9 backtrack = func(idx int) {
10 if len(curr) == n {
11 ans = append(ans, append([]int{}, curr...))
12 }
13 for i := 0; i < n; i++ {
14 if vis[i] == 0 {
15 vis[i]++
16 curr = append(curr, nums[i])
17 backtrack(i + 1)
18 curr = curr[:len(curr)-1]
19 vis[i]--
20 }
21 }
22 }
23 backtrack(0)
24 return ans
25}

Callers

nothing calls this directly

Calls 1

backtrackFunction · 0.70

Tested by

no test coverage detected