数组中出现次数超过一半的数字
数组中出现次数超过一半的数字” 简称为 “众数” 。
题解
排序
数组中点的元素一定就是超过数组长度一半的那个元素,按照从小到大排列
这个方法有点秀
哈希表统计法 键值对
getOrDefault(Object key, V defaultValue)
这个函数是如果map中存在这个key,那就返回这个key本身的value,如果不存在这个key,那就返回这个key默认的defaultValue,也就是这个函数键后面带的那个defaultValue
如果这个键的值超过了长度的一半,那就说明就是这个键就是题目要求,因为只有一个元素可以超过数组长度的一半
摩尔投票法
这个投票法有意思
- 因为题目说了一定存在一个众数,如果题目没有说,如果可能不存在众数,那就需要重新考虑
最后那个要加一个验证,看这个最后剩下的数,他的长度是不是大于数组的一半
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。