思路:考虑数组本身的特性
特点:出现次数超过一半的数==该数出现的次数比其他所有数出现的次数都多。
方法:遍历数组,保存两个值,一个是数字,一个是数字出现的次数
时间复杂度:O(n)
def searchHalfNum(array):
if len(array)==0:
return -1
temp=array[0]
num=1
for i in range(1,(len(array)-1)):
if num==0:
temp=array[i]
num=1
elif array[i]==temp:
num=num+1
elif array[i]!=temp:
num=num-1
return temp
if __name__=="__main__":
arr=[1,2,2,3,4,5,1,2,1,1,1]
print searchHalfNum(arr)