全排列

作者: _阿南_ | 来源:发表于2020-04-25 11:36 被阅读0次

    题目:

    给定一个 没有重复 数字的序列,返回其所有可能的全排列。
    示例:
    输入: [1,2,3]
    输出:
    [
      [1,2,3],
      [1,3,2],
      [2,1,3],
      [2,3,1],
      [3,1,2],
      [3,2,1]
    ]
    

    题目的理解:

    每一位在同一个位置出现n次。一个位置for循环放置所有的数,剩下的数依次操作。

    python实现

    from typing import List
    
    class Solution:
        def permute(self, nums: List[int]) -> List[List[int]]:
            def recycle(childNums: List[int]) -> List[List[int]]:
                if 1 == len(childNums):
                    return [childNums]
    
                arrayList = list()
                for index, num in enumerate(childNums):
                    childNumsTemp = childNums.copy()
                    childNumsTemp.remove(num)
                    childList = recycle(childNumsTemp)
    
                    for numList in childList:
                        resultList = [num]
                        resultList.extend(numList)
    
                        arrayList.append(resultList)
    
                return arrayList
    
            return recycle(nums)
    

    想看最优解法移步此处

    提交

    ok

    分数有点低,不过是一次通过,还是蛮开心的。

    // END 有时候放松自己,可以获得更高的专注力和精力

    相关文章

      网友评论

        本文标题:全排列

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