题目描述
给定一个没有重复数字的序列,返回其所有可能的全排列。
示例:
1 | 输入: [1,2,3] |
分析
nums:[1, 2, 3]
- 首先将1放入
tmp
中,此时序列还剩下2,3:tmp = [1], nums = [2, 3]
- 因为
nums
中还有剩余,所以再将2放入tmp
中tmp = [1, 2], nums = [3]
- 同样,将3放入
tmp
中:tmp = [1, 2, 3], nums = []
此时tmp
中已经没有东西,tmp
中是nums
的一个全排列。 - 之后回到1的情况,此时不将2放入
tmp
而是将3放入tmp
中tmp = [1, 3], nums = [2]
nums
中只剩一个,将其放入tmp
中tmp = [1, 3, 2], nums = []
[1, 3, 2]
也是nums
的一个全排列。
代码
1 | class Solution: |
执行用时 :64 ms, 在所有 Python3 提交中击败了91.50%的用户
内存消耗 :13.3 MB, 在所有 Python3 提交中击败了35.97%的用户