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

原创 2016年08月31日 15:11:33
思路:考虑数组本身的特性
特点:出现次数超过一半的数==该数出现的次数比其他所有数出现的次数都多。
方法:遍历数组,保存两个值,一个是数字,一个是数字出现的次数
时间复杂度: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)


版权声明:本文为博主原创文章,未经博主允许不得转载。

数组中超过一半(N/2)的数)进阶 (找到出现次数超过N/K的数)

import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Ma...

剑指offer——数组中出现次数超过一半的数字(不错,2 ways)

面29 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,...

面试:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数

/*********************************************************************** 有个数字出现的次数超过了数组长度的一半,也就是, 有个...

找出数组中出现次数超过一半的数

如果有一个数出现的次数超过一半,那他出现的次数肯定比其他数字出现次数的和还要多,这时可以遍历数组并保存两个值,一个是出现的数字,一个是次数,当下一个数字和保存的数字相同时,次数加1,如果不同,次数减1...
  • LMFQYJ
  • LMFQYJ
  • 2016年10月14日 19:43
  • 162

数组之找出Array中出现次数超过一半的数

/*********数组之找出Array中出现次数超过一般的数,假设数组乱序;***********/ /***********************************************...

找出数组中出现次数超过一半的数

算法--找出数组中出现次数超过一半的数      每当我看到经典的算法题,就怀念高中,感觉很多算法题就是高中的题目,谁叫哥只读了个专科,高数基本相当没学。      有空要看看高数啊,想当年数学那...

算法--找出数组中出现次数超过一半的数

作者:陈太汉算法--找出数组中出现次数超过一半的数     每当我看到经典的算法题,就怀念高中,感觉很多算法题就是高中的题目,谁叫哥只读了个专科,高数基本相当没学。     有空要看看高数啊,想当年数...

剑指offer系列之二十七:数组中出现次数超过一半的数

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如...

腾讯编程题:数组中某个数出现的次数超过总数的一半

数组中某个数出现的次数超过总数的一半。

算法--找出数组中出现次数超过一半的数

算法--找出数组中出现次数超过一半的数 作者:陈太汉 算法--找出数组中出现次数超过一半的数      每当我看到经典的算法题,就怀念高中,感觉很多算法题就是高中的题目,谁叫哥只读了个专科,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【数组2】数组中出现次数超过一半的数
举报原因:
原因补充:

(最多只允许输入30个字)