📅  最后修改于: 2023-12-03 15:40:02.633000             🧑  作者: Mango
在一个给定的整数数组中,可能有多个元素出现的频率相等,这时我们需要找出其中出现次数最多的元素,如果有多个元素出现的频率相等并且都是最大的,那么我们需要返回其中任意一个。
首先对给定的数组进行排序,然后从左到右遍历每个元素,统计出它在数组中出现的次数,如果出现次数与它的值相等,那么说明它是一个出现次数与值相等的元素,我们记录下这个元素并维护一个当前出现次数最多的元素,如果该元素出现的次数大于当前的最大出现次数,那么我们更新最大出现次数和最大出现次数对应的元素。
def find_max_frequency_element(arr):
# 数组排序
arr.sort()
# 初始化最大出现次数和最大出现次数对应的元素
max_frequency = 0
max_frequency_element = None
# 统计数组中出现次数与值相等的元素
for i in range(len(arr)):
frequency = arr.count(arr[i])
if frequency == arr[i]:
if frequency > max_frequency:
max_frequency = frequency
max_frequency_element = arr[i]
# 返回结果
return max_frequency_element
>>> arr = [2, 3, 3, 3, 2, 1, 1, 1, 5, 5, 5, 5]
>>> find_max_frequency_element(arr)
3
在上面的示例中,数组中出现次数最多的元素为3。