题解 | #没有重复项数字的全排列#
没有重复项数字的全排列
http://www.nowcoder.com/practice/4bcf3081067a4d028f95acee3ddcd2b1
package main
/**
*
* @param num int整型一维数组
* @return int整型二维数组
*/
var res [][]int
func permute(nums []int) [][]int {
res = [][]int{}
backtrack(nums, 0)
return res
}
func backtrack(nums []int, idx int) {
if idx == len(nums) {
temp := make([]int, len(nums))
copy(temp, nums)
res = append(res, temp)
return
}
for i := idx; i < len(nums); i++ {
nums[i], nums[idx] = nums[idx], nums[i]
backtrack(nums, idx+1)
nums[i], nums[idx] = nums[idx], nums[i]
}
}