使用set和map解决模式问题?

时间:2019-04-21 17:09:46

标签: c++ dictionary stl set

所以我在作业中遇到了这个问题,要求我分别使用set和map来实现,以解决数组中模式的数量(以找到一组数据中出现频率最高的数据)。它还需要测试并显示无模式,1模式和多种模式的解决方案,这些实际上就是我所拥有的全部说明(老师并不热衷于具体)。据我了解,无论是set还是map都不允许重复值,那么怎么会有模式存在?我很生气。有人可以给我一些关于这方面的见解,是否可行?我将不胜感激任何开始这一工作的指针。谢谢!

1 个答案:

答案 0 :(得分:0)

该解决方案非常简单,您只需要一张映射表即可统计每个整数出现的次数,并在映射表中进行迭代以找到计数最大的密钥。解决方案是这里的最后一个:

https://www.geeksforgeeks.org/frequent-element-array/

对于带有集合的解决方案,可能最好使用有序多重集,该多重集将使事物保持正确的顺序,然后仅使用可变的最大计数和当前计数进行迭代。当当前计数大于最大计数时,用当前元素替换most_freq(另一个变量)。基本上就是解决方案。我可以在3分钟内完成编码,但我希望您完成作业。