美文网首页
全排列 (lintcode:permutations)

全排列 (lintcode:permutations)

作者: v1coder | 来源:发表于2018-02-25 20:01 被阅读0次

给定一个数字列表,返回其所有可能的排列。假设没有重复数字。
样例:给出一个列表[1,2,3],其全排列为:

[
  [1,2,3],
  [1,3,2],
  [2,1,3],
  [2,3,1],
  [3,1,2],
  [3,2,1]
]

代码:

class Solution:
    """
    @param: nums: A list of integers.
    @return: A list of permutations.
    """
    def permute(self, nums):
        # write your code here
        if(len(nums)<=1):
            return [nums]  
        r=[]  
        for i in range(len(nums)):  
            s=nums[:i]+nums[i+1:]  
            p=self.permute(s) #  self 别忘了
            for x in p:  
                r.append(nums[i:i+1]+x)  
        return r

lintcode 原题
解法的 出处

20180225

相关文章

网友评论

      本文标题:全排列 (lintcode:permutations)

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