169. 求众数

给定一个大小为 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ 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()
以列表返回字典中的所有值

猜你喜欢

转载自blog.csdn.net/weixin_31866177/article/details/80976013
今日推荐