题目:全排列
给定一个没有重复数字的序列,返回其所有可能的全排列。
示例:
1 | 输入: [1,2,3] |
思路
这题需要用到递归的思想:
当只有两个数时,依次将数字取出放到最后即可。
当有多余两个数时,依次将第
i
个数取出,放置到剩余部分的最后,剩余部分看做一个整体(即nums[:i] + nums[i + 1:]
)。- 对剩余部分进行递归即可。
实现:
1 | class Solution: |
其他思考
其实Python
的itertools
库中提供了内置的全排列方法:
1 | class permutations(object): |
现实中可以直接调用:
1 | class Solution: |
如果大家有更好的方法,欢迎一起探讨。