第一反应就是想到new一个dictionary出来,用key和value来保存number和对应的次数

# -*- coding:utf-8 -*-
class Solution:
    def MoreThanHalfNum_Solution(self, numbers):
        # write code here
        if not numbers:
            return None
        dic = dict()
        for i in numbers:
            if i not in dic:
                dic[i] = 1
            else:
                dic[i] += 1
            if dic[i] > (len(numbers)/2):
                return i


  • 题目保证有某个数的出现次数超过一半,假如我们将答案排序一遍,最中间的那个数一定是答案,其实不难理解,我们可以看一下图示

在这里插入图片描述
在这里插入图片描述


# -*- coding:utf-8 -*-
class Solution:
    def MoreThanHalfNum_Solution(self, numbers):
        # write code here
        numbers.sort()#对列表进行排序
        return numbers[(len(numbers)-1)//2]#输出中点