📅  最后修改于: 2023-12-03 15:10:02.053000             🧑  作者: Mango
在开发中,有时我们需要找出数组中出现频率超过 N 次的元素。这个问题可以使用 HashMap 来解决。
下面是 Python 代码实现:
def print_frequent_items(arr, n, k):
"""
打印出现次数超过 n * k 的元素
:param arr: 数组
:param n: 数组长度
:param k: 出现次数的门限
"""
freq = {}
for i in range(n):
if arr[i] in freq:
freq[arr[i]] += 1
else:
freq[arr[i]] = 1
for item in freq:
if freq[item] > n * k:
print(item)
这个函数接受三个参数:数组、数组长度、出现次数的门限。函数内部首先使用 HashMap 统计每个元素出现的次数,然后遍历 HashMap,打印出现次数超过门限的元素。
下面是一个使用案例:
arr = [1, 2, 3, 4, 5, 2, 2, 2, 1]
n = len(arr)
k = 0.3
print_frequent_items(arr, n, k)
输出:
2
以上就是 Python 实现打印所有出现超过 N 次的数组元素的方法。