题解 | #数组中出现次数超过一半的数字#
数组中出现次数超过一半的数字
https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163
class Solution:
def MoreThanHalfNum_Solution(self, numbers: List[int]) -> int:
countMap = {}
listLength = len(numbers)
# 长度过长,报错,今早返回
if listLength > 50000:
raise Exception("List Length Exceed")
# 取得比较目标数字
halfNum = len(numbers) / 2
for _, item in enumerate(numbers):
# 如果数字超过范围那么尽早返回
if item > 10000 or item < 0:
raise Exception("Number Exceed")
# 对数字出现的次数做统计
if item in countMap:
countMap[item] += 1
else:
countMap[item] = 1
# 如果出现此时超过目标,那么返回,否则接着循环
if countMap[item] > halfNum:
return item
raise Exception("No Such item in list")
