📅  最后修改于: 2023-12-03 15:39:45.239000             🧑  作者: Mango
在数组中查找频率最高为数字 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 的数组元素的示例代码。