红包金额次数过半问题

来源:互联网 发布:单片机plc的区别 编辑:程序博客网 时间:2024/05/14 10:04

题目:收到红包后发现某个红包金额出现的次数超过了一半,找出这个金额,给定一个红包金额数组a[],长度n,求那个金额s。

例:[1,2,3,1,1,1] ,n 返回:1

思路一:如果存在s,则肯定存在s的邻居也是s,先找是否有相邻相等的数,然后再遍历查个数,看是否大于一半。

思路二:排序后众数位于中数,排序后去中间值,从中间点往一个方向遍历

思路三:遍历,用map保存值和出现次数,然后再遍历map找最大次数,但是map的put、get 都是耗性能的。

0 0
原创粉丝点击