您的位置:首页 > 其它

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

2017-03-09 18:20 531 查看
Permutations


Description:

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

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

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

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



代码如下:

__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))


结果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: