您的位置:首页 > 科技 > IT业 > 手工制作折纸_微信贷款怎么申请开通_关键词快速排名怎么做_交换链接营销案例

手工制作折纸_微信贷款怎么申请开通_关键词快速排名怎么做_交换链接营销案例

2025/1/11 2:00:39 来源:https://blog.csdn.net/2301_79954395/article/details/144811524  浏览:    关键词:手工制作折纸_微信贷款怎么申请开通_关键词快速排名怎么做_交换链接营销案例
手工制作折纸_微信贷款怎么申请开通_关键词快速排名怎么做_交换链接营销案例

审题:

数组不为空且一定存在众数。需要返回众数的数值

思路:

方法一:哈希映射

先用哈希映射去存储对应数据出现的次数,然后遍历找到众数并输出

当然也可以在第一次映射的过程中就维护一个出现次数最多的数据,这样子就可以减少一次循环遍历

方法二:排序

由于众数个数是大于n/2的,那么n/2索引位置的数据一定是众数,下面我们分类讨论

第一行是数据个数是偶数的情况:n/2的位置在3数据的位置,我们考虑极端情况

若众数都分布在n/2位置前面,那么众数最后一个数据的位置就在3的位置,也就是n/2位置

若都在其后面,那么众数第一个数据就在n/2位置

第二行是数据个数是奇数的情况:n/2还是在3的位置,极端情况

众数在n/2的前面,最后一个众数位置在n/2

在n/2后面,倒数第二个众数位置在n/2

而在非极端情况下,数据会分布在n/2周围,也满足n/2为众数的情况

解题:

方法一:哈希映射

方法二:排序

链接:169. 多数元素 - 力扣(LeetCode)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com