首页 > 解决方案 > 如何检查数组是否有超过 2 个重复元素

问题描述

我有一个数组说arr[]={8,2,3,6,1,4,5,3,2,2} 我如何才能找到我的数组是否有超过 2 个重复元素,例如这里元素2重复三次,但它应该只允许它两次(不超过 2 个)。

标签: arraysalgorithmlanguage-agnosticlogic

解决方案


当然你需要计算元素。但是如何 - 取决于元素的性质。

对于小的正数 - 只是计数器阵列。

Counts[a[i]]++

对于任意范围 - 带有值和计数器的映射

if a[i] in map:
   map[a[i]]++  //increase key
else
   map.add(a[i], 1)   //add value with key=1

您也可以对数组进行排序,然后遍历它,计算相等的邻居

count = 1 
for i in range(1, len(a))
   if a[i] == a[i-1] 
      count++
      check count
   else
      count = 1

推荐阅读