每日一題-——LeetCode(46)全排列

題目描述:app

給定一個沒有重複數字的序列,返回其全部可能的全排列。
輸入: [1,2,3]
輸出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]spa

 

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)全排列2code

題目描述:
給定一個可包含重複數字的序列,返回全部不重複的全排列。
輸入: [1,1,2]
輸出:
[
[1,1,2],
[1,2,1],
[2,1,1]
]blog

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
相關文章
相關標籤/搜索