如何编写统计列表重复项总数的伪代码 需包含数字3的重复情况
统计列表重复项总数量实现方案
需求说明
- 统计列表中所有重复项的总数量,数字3的重复情况需计入统计
- 统计规则:每个元素的重复数 = 该元素出现次数 - 1,所有元素的重复数累加即为最终结果
- 输入示例:
T = [1, 2, 1, 1, 3, 3] - 输出要求:返回值为3,计算逻辑:1出现3次贡献
3-1=2,3出现2次贡献2-1=1,总和2+1=3
现有代码问题说明
原有代码仅统计存在重复的元素个数,最终返回值为2,不符合统计总重复数的需求
def find_same_num(a): n = len(a) result = set() for i in range(0,n-1): for j in range(i+1,n): if a[i] == a[j]: result.add(a[i]) return result T = [1, 2, 1, 1, 3, 3] print(len(find_same_num(T))) # 输出为2,仅统计到1和3两个有重复的元素
伪代码实现
函数 统计重复总数量(输入列表 arr): 初始化计数字典 count_map 为空 初始化总重复数 total = 0 遍历 arr 中的每个元素 num: 如果 num 在 count_map 中: count_map[num] = count_map[num] + 1 否则: count_map[num] = 1 遍历 count_map 中的每个计数值 cnt: 如果 cnt > 1: total = total + (cnt - 1) 返回 total
Python可运行实现
def count_total_duplicates(a): count_map = {} total = 0 for num in a: count_map[num] = count_map.get(num, 0) + 1 for cnt in count_map.values(): if cnt > 1: total += cnt - 1 return total T = [1, 2, 1, 1, 3, 3] print(count_total_duplicates(T)) # 输出为3,符合需求
内容的提问来源于stack exchange,提问作者Bearbla
相关产品推荐
相关产品推荐

