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

有重复项数字的全排列

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

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param num int整型一维数组
# @return int整型二维数组
#
class Solution:
    def permuteUnique(self, nums: List[int]) -> List[List[int]]:
        # write code here
        ans = []
        path = []
        n = len(nums)
        on_path = [False] * n
        nums.sort()
        def dfs(i: int) -> None:
            if i == n:
                ans.append(path.copy())
                return
            for j in range(0, n):
                if on_path[j] or (j > 0 and nums[j] == nums[j - 1] and not on_path[j - 1]):
                    continue
                path.append(nums[j])
                on_path[j] = True
                dfs(i + 1)
                path.pop()
                on_path[j] = False
        dfs(0)
        return ans

全部评论

相关推荐

05-25 10:45
门头沟学院 Java
Frank_zhan...:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
无实习如何秋招上岸
点赞 评论 收藏
分享
不要停下啊:大二打开牛客,你有机会开卷了,卷起来,去找课程学习,在牛客上看看大家面试笔试都需要会什么,岗位有什么需求就去学什么,努力的人就一定会有收获,这句话从来都经得起考验,像我现在大三了啥也不会,被迫强行考研,炼狱难度开局,啥也不会,找工作没希望了,考研有丝丝机会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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