📌  相关文章
📜  数组中与其频率相等的最大元素(1)

📅  最后修改于: 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。