第一反应就是想到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]#输出中点