全排列 (lintcode:permutations)
2018-02-25 本文已影响0人
v1coder
给定一个数字列表,返回其所有可能的排列。假设没有重复数字。
样例:给出一个列表[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