leetcode-169-求众数

本文介绍了两种寻找数组中出现次数超过一半元素的方法:一种是使用字典统计每个元素出现的频率并找出符合条件的元素;另一种是通过排序数组并选取中间元素作为众数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:

将数组的不同的数以字典的形式存储起来,key值是数组的数,value值是在数组中出现的次数,取value大于2/len(nums)的key

1.代码:

class Solution(object):
    def majorityElement(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        elem_dict={}
        for i in nums:
            if i not in elem_dict:
                elem_dict[i]=1
            else:
                elem_dict[i] += 1
        for i in elem_dict:
            if elem_dict[i]>len(nums)/2:

                return i

2.结果:(效果不太好)


方法二:

采用先排序然后取中间值的方法,因为众数的数目是大于len(num)/2

一、代码

class Solution(object):
    def majorityElement(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        nums.sort()

        return nums[len(nums)/2]

二、结果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值