15. Permutations/46. Permutations
- 本题难度: Medium
- Topic: Search & Recursion
Description
Given a list of numbers, return all possible permutations.
Example
Example 1:
Input: [1]
Output:
[
[1]
]
Example 2:
Input: [1,2,3]
Output:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
Challenge
Do it without recursion.
Notice
You can assume that there is no duplicate numbers in the list.
我的代码
class Solution:
"""
@param: nums: A list of integers.
@return: A list of permutations.
"""
def permute(self, nums):
# write your code here
# recursion
res = []
self.dfs(nums,[],res,len(nums))
return res
def dfs(self,nums,path,res,n):
if len(path)==n:
res.append(path)
for i in range(len(nums)):
self.dfs(nums[:i]+nums[i+1:],path+[nums[i]],res,n)