面试-剑指offer-数组中出现次数超过一半的数字
题目数组中有一个数字出现的次数超过数组长度的一般,请找出这个数字。思路
解法一:基于Partition函数的O(n)算法
数组中有一个数字出现的次数超过了数组长度的一般。如果把这个数组排序,那么排序之后位于数组中间的数字一定就是那个出现次数超过数组长度一半的数字。也就是说,这个数字就是统计学上的中位数,即长度为n的数组中第n/2大的数字。我么有成熟的O(n)的算法得到数组中任意第k大的数字。
快速排
转载
2017-12-14 21:58:21 ·
156 阅读 ·
0 评论