46. 全排列

作者: cptn3m0 | 来源:发表于2019-03-24 22:36 被阅读0次

    全排列问题有很多的解法

    这里使用的解法是位向量法

    class Solution(object):
        def dfs(self,nums,mark,cur,res):
            if sum(mark) == len(nums):
                # 注意这里的写法,如果cur会出现空结果
                res.append(cur[:])
                return
            
            for i in range(len(nums)):
                if mark[i] == False:
                    mark[i] = True
                    cur.append(nums[i])
                    self.dfs(nums, mark,cur,res)
                    cur.pop()
                    mark[i] = False
        
        def permute(self, nums):
            """
            :type nums: List[int]
            :rtype: List[List[int]]
            """
            res=[]
            mark = [False]*len(nums)
            
            cur = []
            self.dfs(nums,mark,cur,res)
            return res
    

    相关文章

      网友评论

        本文标题:46. 全排列

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