首页 > 编程语言 > 详细

leetcode 46 全排列 (python)

时间:2019-08-08 23:57:45      阅读:185      评论:0      收藏:0      [点我收藏+]

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

示例:

输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        results = []
        len_n = len(nums)
        def backtrack(my_nums, use_nums):
            if len(my_nums) == len_n:
                results.append(my_nums)
                return
            for i in range(len(use_nums)):
                x = my_nums.copy()
                x.append(use_nums[i])
                backtrack(x, use_nums[:i]+use_nums[i+1:]) # 不包含i元素
        backtrack([], nums)
        return results

参考:https://www.cnblogs.com/watch-fly/p/leetcode_46_watchfly.html

leetcode 46 全排列 (python)

原文:https://www.cnblogs.com/xiaotongtt/p/11324441.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!