题解 | #没有重复项数字的全排列#

没有重复项数字的全排列

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]
	}
}

全部评论

相关推荐

头像
点赞 评论 收藏
转发
2 收藏 评论
分享
牛客网
牛客企业服务