有一個數字列表,要找出列表中出現次數超過列表長度一半的數字,如果有2個或2個以上數字出現的次數都超過了列表長度的一半,找出第一個滿足條件的數字即可,如果列表元素個數是奇數,列表元素個數的一半取整數部分(四捨五入)
例如: 長度爲21的列表的一半取11
def moreThanHalfNum(numbers):
d = {}
maxNum = 'no'
listCount = len(numbers)
for n in numbers:
if d.get(n) is None:
d[n] = 1
if maxNum == 'no':
maxNum = n
else:
d[n] += 1
if n != maxNum and d.get(n) > d.get(maxNum):
maxNum = n
if d.get(maxNum) > listCount // 2:
return maxNum
return 'no'
print(moreThanHalfNum([1, 2, 3, 4, 1, 1, 1, 1]))
1