3

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

我查看了提取至少n /2 次重复元素。但我无法将其修改为我的要求。另外,由于我的不是字符数组,我无法创建一个 5,000 大小的数组来增加重复数字的索引。

4

1 回答 1

9

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

  1. 对数组进行排序(就地),qsort()如果你有它,当然可以使用。
  2. 迭代,保持一个计数器,每次数组值更改时重置,一旦计数器达到 n/4,记住它为哪个数字这样做。
  3. 完毕。

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

于 2012-08-31T09:19:58.523 回答