You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

整数数组重复元素计数结果异常,请求技术支援

解决数组重复数字重复输出的问题

看起来你遇到的核心问题是:当前的checkMultiple()函数会把重复多次的数字每次匹配到都输出一遍,而不是只输出每个重复数字一次对吧?这是因为你可能在遍历数组时,每发现一对重复就立刻打印,而没有做去重处理。

我来给你两种简单的解决思路,不管数字重复多少次,都只会输出一次重复的数字:


方法一:用字典统计出现次数

先遍历数组统计每个数字的出现次数,之后只输出那些出现次数≥2的数字,每个数字仅输出一次:

def checkMultiple(arr):
    # 创建字典存储每个数字的出现次数
    num_counts = {}
    for num in arr:
        # 如果数字不在字典里,默认计数0,加1;否则直接加1
        num_counts[num] = num_counts.get(num, 0) + 1
    
    # 输出所有重复的数字(出现次数≥2)
    print("重复的数字:")
    for num, count in num_counts.items():
        if count >= 2:
            print(num)

比如你测试数组[9,5,2,8,5,9,9],这个函数会输出:

重复的数字:
9
5

方法二:用集合跟踪已发现的重复数字

通过两个集合,一个记录已经遍历过的数字,另一个记录已经确认的重复数字,利用集合自动去重的特性,确保每个重复数字只被记录一次:

def checkMultiple(arr):
    seen = set()  # 记录已经遍历过的数字
    duplicates = set()  # 记录已经发现的重复数字
    
    for num in arr:
        if num in seen:
            # 如果数字已经遍历过,说明是重复的,加入duplicates集合
            duplicates.add(num)
        else:
            # 第一次遇到,加入seen集合
            seen.add(num)
    
    # 输出结果
    print("重复的数字:")
    for num in duplicates:
        print(num)

这个方法的优势是不需要统计具体次数,只要发现重复就记录,而且集合的查询和添加操作效率都很高。


核心逻辑就是先收集所有重复的数字(确保每个只存一次),再统一输出,而不是每发现一次重复就立刻打印。这样不管数字重复2次还是10次,都只会输出一次啦。

内容的提问来源于stack exchange,提问作者Richard Cook

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:55:28