第一种排序:如果将数组 array 中的所有元素按照单调递增或单调递减的顺序排序,那么下标为 n/2 的元素(下标从 0 开始)一定是众数。

class Solution:
    def MoreThanHalfNum_Solution(self, numbers):
         a = sorted(numbers)
         if a.count(a[len(numbers)//2]) > len(numbers)/2:  
         	return a[len(numbers)//2]

第二种哈希表统计

class Solution:
    def MoreThanHalfNum_Solution(self, numbers):
        if not numbers:
            return None
        if len(numbers) == 1:
            return numbers[0]
        # 哈希表
        set = {}
        for i in numbers:
            if i not in set:
                set[i] = 1
            else:
                set[i] += 1
                if set[i] > (len(numbers) / 2):
                    return i
        return None