题解 | #数组中出现次数超过一半的数字#

数组中出现次数超过一半的数字

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")

全部评论

相关推荐

09-22 22:22
中山大学 Java
双尔:赌对了,不用经历秋招的炼狱真的太好了,羡慕了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务