找到n个数的模式

时间:2014-12-01 20:27:06

标签: c++ mode

我试图编写一个程序,用户给出n个数字,程序必须找出最重复的数字。 例如对于数字:4 5 5 1 3 1 1 7 1答案是1 顺便说一句,我是初学者,这就是为什么网站上已有的大多数答案都不适合我。 我非常感激。

3 个答案:

答案 0 :(得分:2)

使用散列图(unordered_map)计算数字的出现次数,然后搜索散列图中的最大出现次数。

答案 1 :(得分:0)

我认为您可以使用优先级队列来保存元素{1,1,1,1,3,4,5,5,7} 然后从此队列中操作模式

答案 2 :(得分:0)

您可能想要做的是将数字插入std::vector,使用std::sort
(在<algorithm>中),然后循环播放,以便查看哪个数字出现次数最多。

为了给你一个想法,你可以在循环时使用std::vector<int>::iterator(使用 auto 代替)指向向量的开头+ 1,然后检查值是否为迭代点数等于
iterator - 1。如果当前值高于 最大值,则将其与迭代器一起存储到该对象。

希望能帮助你。