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

有重复项数字的全排列

https://www.nowcoder.com/practice/a43a2b986ef34843ac4fdd9159b69863

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param num int整型一维数组
# @return int整型二维数组
#
class Solution:
    def permuteUnique(self, num: list[int]) -> list[list[int]]:
        # write code here
        ans = []
        length = len(num)
        visited = [False for i in range(length)]
        L = []
        num.sort()
        print(num)

        def traversal(num, visited, L):
            # print("start")
            if len(L) == length:
                ans.append(L.copy())
                return

            for i in range(length):
			    #在这里进行树枝标记
                if visited[i]:
                    continue
				#在这里进行树层剪枝
                if i > 0 and num[i] == num[i - 1] and visited[i - 1] == False:
                    continue

                L.append(num[i])
                visited[i] = True
                traversal(num, visited, L)
				#回溯
                L.pop()
                visited[i] = False

        traversal(num, visited, L)
        return ans

全部评论

相关推荐

27届毕业,最近想找一段大厂实习,感觉简历有些问题,好多都不给面,求大佬们指点,最近好焦虑
后端劝退第91人:我从后端的角度分析一下你的第一个项目,我感觉亮点不是很突出。因为我是因为组内有需求,临时上手学react干活。我用到的技术基本就cover你那个智慧园区管理平台的很多亮点了。那作为比较专业的前端,你上述的内容是不是有点单薄呢。感觉还得包装
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务