LeetCode-169 求众数

题目

https://leetcode-cn.com/problems/majority-element/

给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在众数。

示例 1:

输入: [3,2,3]
输出: 3

示例 2:

输入: [2,2,1,1,1,2,2]
输出: 2

我的AC

class Solution(object):
    def majorityElement(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        mapping = {}
        for num in nums:
            if num in mapping:
                mapping[num] += 1
            else:
                mapping[num] = 1
        sort_list = sorted(mapping.items(), key=lambda d:d[1], reverse=True)
        return sort_list[0][0]

小结

  1. 判断字典是否有键

正确:

if num in mapping:

错误:

if mapping[num]:
  1. 字典键值降序
D = {'jack': 23, 'rose': 21, 'flank': 22}
sorted(D.items(), key=lambda d:d[1], reverse=True)  # 值(value)降序
> [('jack', 23), ('flank', 22), ('rose', 21)]

你可能感兴趣的:(LeetCode-169 求众数)