如何找到一个数组中的众数?
输入一个含有n个元素的数组,统计出其中众数及其出现次数,若是有多个众数的情况如何统计?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
输入一个含有n个元素的数组,统计出其中众数及其出现次数,若是有多个众数的情况如何统计?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
使用
HashMap
吧,key
为数组元素,value
为出现次数。每次put时,检查是否contain当前元素,包含的话,value+1,否则value=1
使用 Map 来统计每个数出现的频率,然后按频率降序排序,选出频率最大的数即为众数(可能为多个)。
这个是个经典的题目,是有时间复杂度是O(N)的做法的。
代码网上有很多。我这里给一个链接。
http://blog.csdn.net/hello2sy...
用两个hash表,可以把事件复杂度降到O(N):
java8: