算法分析与设计课程(3):【leetcode】Permutations

来源:互联网 发布:游戏大厅源码 编辑:程序博客网 时间:2024/04/29 05:30

Permutations

Description:

Given a collection of distinct numbers, return all possible permutations.

For example,
[1,2,3] have the following permutations:



算法分析:解决这个问题,很容易想到树,一层层地生成。

                   因此我们可以考虑用递归的方式。


代码如下:

__author__ = 'andy'class Solution(object):        def permute(self, nums):            self.result = []            subList = []            self.cal(nums,subList)            return self.result        def cal(self,nums,subList):            #如果子链表跟原链表等长,则加到结果中            if len(nums)==len(subList):                self.result.append(subList[:])            #用递归的方式,得出组合            for a in nums:                if a in subList:                    continue                subList.append(a)                self.cal(nums,subList)                subList.remove(a)case = Solution()nums =[1,2,3]print(case.permute(nums))

结果:



0 0
原创粉丝点击