题目描述
https://leetcode-cn.com/problems/permutations/
思路题解
1.从最左边开始,遍历数组
2.把数字n[i]与tmp结合,作为结果的其中之一,将n[i]剔除,把剩余的数字传入函数
3.直到传入的数组长度为0时,把tmp存入结果
func permute(nums []int) [][]int {
ans:=new([][]int)
var tmp []int
Backtracking(tmp,nums,ans)
return *ans
}
func Backtracking(tmp []int,n []int,ans *[][]int){
if len(n)==0{
*ans=append(*ans, tmp)
return
}
for i:=0;i<len(n);i++{
x:=make([]int,len(n))
copy(x,n)
Backtracking(append(tmp, n[i]), append(x[:i],x[i+1:]...),ans)
}
return
}