这段代码的功能是找出数组中出现次数最多的元素(超过一半)。

核心思路

1. 先把数组排序(从小到大)
2. 然后直接取中间位置的元素

为什么这样可行?

· 因为如果一个元素出现次数超过一半
· 排序后它一定会占据中间位置
· 比如数组 [2,2,1,1,1,2,2] 排序后变成 [1,1,1,2,2,2,2]
· 中间位置(第4个元素)是2,确实是出现最多的元素

· 方法简单直接,容易理解

 

更多推荐