给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋
的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1:
输入: [3,2,3] 输出: 3
示例 2:
输入: [2,2,1,1,1,2,2] 输出: 2
# -*- coding:utf-8 -*- import numpy as np class Solution(object): def majorityElement(self, nums): """ :type nums: List[int] :rtype: int """ dict_num={} max_num = 0 flag = 0 for i in nums: if i in dict_num: dict_num[i] += 1 if i not in dict_num: dict_num[i] = 1 # print(dict_num) for k,j in dict_num.items(): # 以列表返回可遍历的(键, 值) 元组数组 # print(k,j) if(max_num<j): max_num = j flag = k return flag def main(): nums = [2, 2, 1, 1, 1, 2, 2] myresult = Solution() print(myresult.majorityElement(nums)) if __name__ == '__main__': main()
- 网上的参考
d = {} r = [] for i in range(len(nums)): if nums[i] in d.keys(): d[nums[i]] += 1 else: d[nums[i]] = 1 times = len(nums) // 2 for key in d.keys(): if d[key] > times: return key
有很多种解法 链接:https://blog.csdn.net/qq_34364995/article/details/80544139
备注:
字典的用法
6 | dict.items() 以列表返回可遍历的(键, 值) 元组数组 |
7 | dict.keys() 以列表返回一个字典所有的键 |
10 | dict.values() 以列表返回字典中的所有值 |