题解 | #没有重复项数字的全排列#
没有重复项数字的全排列
https://www.nowcoder.com/practice/4bcf3081067a4d028f95acee3ddcd2b1
class Solution:
def permute(self , num: List[int]) -> List[List[int]]:
if len(num) <= 1:
return [num]
output = []
for i in range(len(num)):
for j in self.permute(num[:i] + num[i+1:]):
output.append([num[i]] + j)
return output
写一半,想了想还是改成递归了,这个好写多了。
我们首先检查列表的长度是否小于等于1。
如果是,则返回包含该元素的列表。
否则,我们遍历列表中的每个元素,并将这个元素前置,与其余所有元素构成的所有序列可能合并。
而其余的所有序列可以递归得到。
#日常刷题#