首页 > 技术文章 > leetcode-169求众数

tianyahai 2019-05-16 11:50 原文

求众数

思路:

  记录每个元素出现的次数,然后查找到众数

代码:

  

class Solution:
    def majorityElement(self, nums: List[int]) -> int:
        threshold = len(nums) // 2
        d = {}
        for i in nums:
            d[i] = d.get(i, 0) + 1
        for k, v in d.items():
            if v > threshold:
                return k

大神思路:

  对数组排序。因为众数的次数大于数组尺寸的1/2,所以众数肯定位于已排序的中间

代码:

  

class Solution:
    def majorityElement(self, nums: List[int]) -> int:
        nums.sort()
        return nums[len(nums)//2]

 

推荐阅读