《剑指Offer》刷题笔记——面试题39. 数组中出现次数超过一半的数字

难度:简单

一、题目描述:

在这里插入图片描述

二、解题分析:

这道题的本质就是找众数

1、剑指解析

在这里插入图片描述

2、代码实现

class Solution:
    def majorityElement(self, nums: List[int]) -> int:
        """相等加1,不等减1,等于0重新赋值,抵消掉非众数"""
        count, res = 0, None
        for num in nums:
            if count == 0: res = num
            count += (1 if num == res else -1)
        return res 
class Solution:
    def majorityElement(self, nums: List[int]) -> int:
        count = {}
        for i in nums:
            count[i]=count.get(i,0)+1
            if count[i] > len(nums)>>1:
                return i
发布了133 篇原创文章 · 获赞 155 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_34108714/article/details/104693517
今日推荐