美文网首页
46. Permutations

46. Permutations

作者: Mree111 | 来源:发表于2019-10-18 13:39 被阅读0次

Description

找到数组全排列

Solution

暴力dfs with sort
Time O(N! *N logN)

import copy
class Solution(object):
    def dfs(self,pre_fix,n_set):
        if len(n_set) ==0:
            self.res.append(copy.deepcopy(pre_fix))
            return 
        iter = list(n_set)
        iter.sort()
        for s in iter:
            pre_fix.append(s)
            n_set.remove(s)
            self.dfs(pre_fix,n_set)
            n_set.add(s)
            pre_fix.pop()
            
    def permute(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        self.set = set(nums)
        self.res = []
        self.dfs([],self.set)
        return self.res

重写更general的dfs

class Solution(object):
    def permute(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        if nums is None:
            return []
        if len(nums)<=1:
            return [nums]
        self.res=[]
        self.dfs(nums,[])
        return self.res
    def dfs(self,nums,trace):
        if len(nums)==0:
            self.res.append(trace)
            return
        for i in range(len(nums)):
            self.dfs(nums[:i]+nums[i+1:],trace+[nums[i]])
            

相关文章

网友评论

      本文标题:46. Permutations

      本文链接:https://www.haomeiwen.com/subject/zhuimctx.html