⚠️ 有重复元素,去重前后差多少

👁️ 0 人浏览 💬 0 人评论 ❤️ 添加收藏

[1, 2, 2] 里有两个一样的 2。一边不去重、一边去重,各生成一遍全部子集。运行下面这段程序:

def subs(a):
    res = []
    path = []
    def dfs(s):
        res.append(list(path))
        for i in range(s, len(a)):
            path.append(a[i])
            dfs(i + 1)
            path.pop()
    dfs(0)
    return res

def subs_uniq(a):
    a = sorted(a)
    res = []
    path = []
    def dfs(s):
        res.append(list(path))
        for i in range(s, len(a)):
            if i > s and a[i] == a[i - 1]:
                continue
            path.append(a[i])
            dfs(i + 1)
            path.pop()
    dfs(0)
    return res

print(str(len(subs([1, 2, 2]))) + "/" + str(len(subs_uniq([1, 2, 2]))))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论