题解 | #没有重复项数字的全排列#

没有重复项数字的全排列

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。

如果是,则返回包含该元素的列表。

否则,我们遍历列表中的每个元素,并将这个元素前置,与其余所有元素构成的所有序列可能合并。

而其余的所有序列可以递归得到。

#日常刷题#
全部评论

相关推荐

nbdy:她的意思是,有的话就有,没有的话就没有
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务