计算数组元素的出现次数

Cha*_*hra 3 c arrays

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

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

unw*_*ind 9

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

  1. qsort()当然,如果有的话,对数组进行排序(就地),使用它是微不足道的.
  2. 迭代,保持每次数组值更改时重置的计数器,一旦计数器达到n/4,请记住它为此执行的数字.
  3. 完成.

这里重要的是,通过将所有相同的元素组合成一个序列,排序使得一次计算每个元素变得微不足道,这使得计数变得微不足道.