关闭

【数组2】数组中出现次数超过一半的数

62人阅读 评论(0) 收藏 举报
分类:
思路:考虑数组本身的特性
特点:出现次数超过一半的数==该数出现的次数比其他所有数出现的次数都多。
方法:遍历数组,保存两个值,一个是数字,一个是数字出现的次数
时间复杂度: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)


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15856次
    • 积分:457
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:1篇
    • 译文:0篇
    • 评论:4条
    最新评论