您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

数组中最常见的值

数组中最常见的值

如果要通过列表中的固定次数进行此操作,则需要第二个数据结构。

如果该集合中的值有上限和下限,并且这些值相对密集,则计数器数组是一个很好的解决方案。

否则,最好使用Map<Integer, Integer>,其中键是集合的元素,而值是计数器。

如果在开始之前没有上限/下限,那么您就不知道要分配的大量计数器。因此,您必须对数组进行初步遍历以找到边界…,现在有了两遍解。

如果您确实有上限和下限,但集合稀疏,则初始化计数数组的成本+找到三个最大计数的成本将主导计算集合元素的成本。如果差异足够大(即输入很大且非常稀疏),则HashMap将更快并且占用更少的内存。

如果允许您更改数组,则可以按升序对其进行排序O(NlogN),然后在经过排序的数组上一次遍历即可找到三个最常见的元素。

其他 2022/1/1 18:27:40 有484人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶