剑指offer:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输
剑指offer算法题分治 位运算题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。题目分析如果直接暴力求解也是可以有解,但是时间复杂度为O(n2),我们的目标是将时间复杂度降为O(n)。思路:如果有符合条件的数字,则它出现的次数比其他所有数字出现的次数和还要多。(这种方法前提条件一定是数字出现的次数过半!)在遍历数组时保存两个值