美文网首页leetcode题解
【Leetcode】46—Permutations

【Leetcode】46—Permutations

作者: Gaoyt__ | 来源:发表于2019-08-04 10:19 被阅读0次
    一、题目描述

    给定一个没有重复数字的序列,返回其所有可能的全排列。
    示例:

    输入: [1,2,3]
    输出:
    [
      [1,2,3],
      [1,3,2],
      [2,1,3],
      [2,3,1],
      [3,1,2],
      [3,2,1]
    ]
    
    二、代码实现

    深搜

    class Solution(object):
        def permute(self, nums):
            """
            :type nums: List[int]
            :rtype: List[List[int]]
            """
            
            finallen = len(nums)
            
            def dfs(nums, cur, res):
                if len(cur) == finallen: 
                    res.append(cur)
                    return
                for index, num in enumerate(nums):
                    dfs(nums[:index] + nums[index+1:], cur + [num], res)
            
            res = []
            cur = []
            for index, num in enumerate(nums):
                dfs(nums[:index] + nums[index+1:], cur + [num], res)
                
            return res
    

    相关文章

      网友评论

        本文标题:【Leetcode】46—Permutations

        本文链接:https://www.haomeiwen.com/subject/ffvedctx.html