题目
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]
小结
- 判断字典是否有键
正确:
if num in mapping:
错误:
if mapping[num]:
- 字典键值降序
D = {'jack': 23, 'rose': 21, 'flank': 22}
sorted(D.items(), key=lambda d:d[1], reverse=True) # 值(value)降序
> [('jack', 23), ('flank', 22), ('rose', 21)]
网友评论