计算数组元素的出现次数

时间:2012-08-31 09:11:41

标签: c arrays

我陷入了困境。我的问题是在整数数组中获得最多重复的数字,该数组的值可以是0到5,000。该数字至少应重复 n / 4次,其中 n 是数组长度。

我看过至少提取 n / 2次重复元素。但我无法根据我的要求修改它。此外,由于我的不是字符数组,我不能创建一个5,000大小的数组来增加重复数字的索引。

1 个答案:

答案 0 :(得分:9)

以下是我将如何处理这个问题,我认为这对于这类问题是有意义的:

  1. 对数组进行排序(就地),如果有的话,使用qsort()进行微不足道的处理。
  2. 遍历,保留每次数组值更改时重置的计数器,一旦计数器达到n / 4,请记住它为此执行的数字。
  3. 完成。
  4. 这里重要的是,通过将所有相同的元素组合成一个序列,排序使得每次计算每个元素变得微不足道,这使计数变得微不足道。