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

没有重复项数字的全排列

https://www.nowcoder.com/practice/4bcf3081067a4d028f95acee3ddcd2b1

from sys import int_info

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param num int整型一维数组
# @return int整型二维数组
#
class Solution:
    def permute(self, num: List[int]) -> List[List[int]]:
        # write code here
        n = len(num)
        if n == 1:
            return [num]
        elif n == 2:
            return [[num[0], num[1]], [num[1], num[0]]]
            # 交换两个元素并返回
        result = list(list())
        for i in range(n):
            temp = [num[j] for j in range(n) if j != i]
            # 递归处理后续的数字
            result.extend([num[i]] + p for p in self.permute(temp))
            # 对于每个排列 p,创建一个新列表,其中第一个元素是 num[i],后面跟随排列 p 的所有元素。
        return result

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务