📜  数组中恰好重复 k 次的最大元素(1)

📅  最后修改于: 2023-12-03 15:40:02.795000             🧑  作者: Mango

数组中恰好重复 k 次的最大元素

在一个给定数组中,找出恰好重复 k 次的最大元素。如果不存在,则返回 -1。

解决方案

我们可以用一个字典来记录数组中每个元素的出现次数,然后再遍历一次字典,找出恰好重复 k 次的最大元素。

def find_max_k_times(nums, k):
    d = {}
    for num in nums:
        if num in d:
            d[num] += 1
        else:
            d[num] = 1
    max_num = -1
    for num, count in d.items():
        if count == k and num > max_num:
            max_num = num
    return max_num
示例
>>> find_max_k_times([1, 2, 3, 4, 4, 5, 5, 5, 6], 2)
5
>>> find_max_k_times([1, 2, 3, 4, 4, 5, 5, 5, 6], 3)
-1
复杂度分析

时间复杂度:O(n),其中 n 是数组的长度。需要遍历数组和字典各一次。

空间复杂度:O(m),其中 m 是数组中不同元素的个数。需要用一个字典来存储每个元素的出现次数。