题解 | #数组中出现次数超过一半的数字#
数组中出现次数超过一半的数字
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")