add new solutions
This commit is contained in:
parent
d798d5e8c9
commit
886b5e0a8e
34 changed files with 1164 additions and 0 deletions
34
solutions/0/q46/solution.go
Normal file
34
solutions/0/q46/solution.go
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
package q46
|
||||
|
||||
func recurse(nums []int, offset int, buf []int, seen []bool, ret [][]int) [][]int {
|
||||
if offset == len(nums) {
|
||||
a := make([]int, len(buf))
|
||||
copy(a, buf)
|
||||
return append(ret, a)
|
||||
}
|
||||
|
||||
for i := range nums {
|
||||
if seen[i] {
|
||||
continue
|
||||
}
|
||||
seen[i] = true
|
||||
buf[offset] = nums[i]
|
||||
ret = recurse(nums, offset+1, buf, seen, ret)
|
||||
seen[i] = false
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
func permute(nums []int) [][]int {
|
||||
totalLen := 1
|
||||
for i := range len(nums) {
|
||||
totalLen *= i + 1
|
||||
}
|
||||
ret := make([][]int, 0, totalLen)
|
||||
buf := make([]int, len(nums))
|
||||
seen := make([]bool, len(nums))
|
||||
|
||||
return recurse(nums, 0, buf, seen, ret)
|
||||
}
|
||||
|
||||
var _ = permute
|
||||
Loading…
Add table
Add a link
Reference in a new issue