全排列
2020-04-25 本文已影响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 有时候放松自己,可以获得更高的专注力和精力