题解 | #没有重复项数字的全排列#
没有重复项数字的全排列
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。
如果是,则返回包含该元素的列表。
否则,我们遍历列表中的每个元素,并将这个元素前置,与其余所有元素构成的所有序列可能合并。
而其余的所有序列可以递归得到。
#日常刷题#