写点什么

[Day41]-[回溯]- 全排列

作者:方勇(gopher)
  • 2022 年 5 月 18 日
  • 本文字数:520 字

    阅读完需:约 2 分钟

46. 全排列

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

 

示例 1:

输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
复制代码

示例 2:

输入:nums = [0,1]输出:[[0,1],[1,0]]
复制代码

示例 3:

输入:nums = [1]输出:[[1]]
复制代码

题解:

func TestPermute(t *testing.T) {	var res [][]int	var permute func(nums []int) [][]int	var backTrack func(nums []int, track []int)	var isSet func(trace []int, target int) bool	isSet = func(trace []int, target int) bool {		for _, val := range trace {			if target == val {				return true			}		}		return false
} backTrack = func(nums []int, track []int) { if len(track) == len(nums) { res = append(res, append([]int{}, track...)) return } for i := 0; i < len(nums); i++ { if false == isSet(track, nums[i]) { track = append(track, nums[i]) backTrack(nums, track) track = track[:len(track)-1] } } } permute = func(nums []int) [][]int { backTrack(nums, []int{}) return res } permute([]int{1, 2, 3}) t.Log(res)}
复制代码


用户头像

Dead or Alive. 生存战斗是知识的源泉! 2018.11.08 加入

我是一名SRE哨兵,目前是好大夫基础架构部高级工程师。专注于 SRE,微服务、中间件的稳定性和可用性建设,整体负责好大夫服务治理云平台的设计和搭建!

评论

发布
暂无评论
[Day41]-[回溯]-全排列_LeetCode_方勇(gopher)_InfoQ写作社区