leetcode-mid-backtracking -46. Permutations-NO

mycode 没有通过,其实只需要把temp.append改为temp+[nums[i]]即可

def permute(nums):
    def dfs(res,nums,temp):
            print(nums,temp)
            if temp:
                if len(temp) == numslen:
                     res.append(temp)
            for i in range(numslen):
                print('..',i,temp)
                temp = temp.append(nums[i])
                print(temp)
                dfs(res,nums[:i]+nums[i+1:],temp)
    if not nums:
        return []
    res = []
    numslen = len(nums)
    dfs(res,nums,[])
    return res
        
permute([1,2,3])

 

参考

class Solution(object):
    def permute(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        def dfs(nums,temp):
            if len(nums)==0:
                self.res.append(temp)
            for i in range(len(nums)):
                dfs(nums[:i]+nums[i+1:],temp+[nums[i]])
        self.res = []
        dfs(nums,[])
        return self.res
        
原文地址:https://www.cnblogs.com/rosyYY/p/10972112.html