美文网首页
[LeetCode]46、全排列

[LeetCode]46、全排列

作者: 河海中最菜 | 来源:发表于2019-08-02 22:54 被阅读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]]
            """
            if not nums or len(nums) == 0:
                return []
            res = []
            def helper(temp, nums):
                if not nums:
                    res.append(temp)
                    return
                for i in range(len(nums)):
                    helper(temp + [nums[i]], nums[:i] + nums[i+1:])
            helper([], nums)
            return res
    
    AC46

    相关文章

      网友评论

          本文标题:[LeetCode]46、全排列

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