[剑指Offer]数组中出现次数超过一半的数字[Python]

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


代码:

class Solution:
    def MoreThanHalfNum_Solution(self, numbers):
        num_list = list(set(numbers)) 
#list变成set,可以找出list中不重复的元素
        count = [numbers.count(i) for i in num_list] 
        index = [ii for ii, val in enumerate(count) if count[ii]>len(numbers)/2 ]
        if index:
            return num_list[index[0]]
        else:
            return 0

猜你喜欢

转载自blog.csdn.net/jillian_sea/article/details/80356893