📜  找出频率最高为数字K的数组元素(1)

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

查找频率最高为数字 K 的数组元素

在数组中查找频率最高为数字 K 的元素,通常可以通过哈希表来实现,时间复杂度为 O(n),空间复杂度为 O(n)。

以下是Python的示例代码:

def find_k_most_frequent_numbers(arr, k):
    freq = {}
    for num in arr:
        if num in freq:
            freq[num] += 1
        else:
            freq[num] = 1
    sorted_freq = sorted(freq.items(), key=lambda x: x[1], reverse=True)
    result = []
    for i in range(k):
        result.append(sorted_freq[i][0])
    return result

在上面的代码中,我们首先遍历整个数组,统计每个元素出现的次数,并存储在一个字典 freq 中。然后,我们按照出现次数从高到低对字典中的元素进行排序,最后返回前 k 个出现次数最多的元素。

如果需要查找所有出现次数等于 K 的元素,可以修改上面的代码如下:

def find_k_frequent_numbers(arr, k):
    freq = {}
    for num in arr:
        if num in freq:
            freq[num] += 1
        else:
            freq[num] = 1
    result = []
    for num in freq:
        if freq[num] == k:
            result.append(num)
    return result

上面的代码中,我们还是首先遍历整个数组,统计每个元素出现的次数,并存储在一个字典 freq 中。然后,我们遍历字典中的元素,找出所有出现次数等于 k 的元素,并添加到结果列表中。

以上就是查找频率最高为数字 K 的数组元素的示例代码。