Subject description:
Given a sequence of numbers is not repeated, all possible return to full permutation.
Input: [1,2,3]
Output:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2 ],
[3,2,1]
]
import itertools class Solution: def permute(self, nums): res = [] def backtrack(nums, tmp): if not nums: res.append(tmp) return for i in range(len(nums)): backtrack(nums[:i] + nums[i+1:], tmp + [nums[i]]) backtrack(nums, []) return res def permute2(self,nums): return list(itertools.permutations(nums))
LeetCode (47) full array 2
Description Title:
Given a sequence of numbers may include repeat, return all distinct full array.
Input: [1,1,2]
Output:
[
[1,1,2],
[1,2,1],
[2,1,1]
]
class Solution: def permuteUnique(self, nums): res = [] def backtrack(nums, tmp): if not nums: res.append(tmp) return for i in range(len(nums)): backtrack(nums[:i] + nums[i+1:], tmp + [nums[i]]) backtrack(nums, []) new_res = [] for data in res: if data not in new_res: new_res.append(data) return new_res