0169. 多数元素

0169. 多数元素 #

  • 标签:数组、哈希表
  • 难度:简单

题目大意 #

描述:给定一个大小为 $n$ 的数组 nums

要求:返回其中相同元素个数最多的元素。

说明

  • $n == nums.length$。
  • $1 \le n \le 5 * 10^4$。
  • $-10^9 \le nums[i] \le 10^9$。

示例

1
2
3
4
5
6
输入nums = [3,2,3]
输出3


输入nums = [2,2,1,1,1,2,2]
输出2

解题思路 #

思路 1:哈希表 #

  1. 遍历数组 nums
  2. 对于当前元素 num,用哈希表统计每个元素 num 出现的次数。
  3. 再遍历一遍哈希表,找出元素个数最多的元素即可。

思路 1:代码 #

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
class Solution:
    def majorityElement(self, nums: List[int]) -> int:
        numDict = dict()
        for num in nums:
            if num in numDict:
                numDict[num] += 1
            else:
                numDict[num] = 1
        max = 0
        max_index = -1
        for num in numDict:
            if numDict[num] > max:
                max = numDict[num]
                max_index = num
        return max_index

思路 1:复杂度分析 #

  • 时间复杂度:$O(n)$。
  • 空间复杂度:$O(n)$。
本站总访问量  次  |  您是本站第  位访问者