python 查找数字列表中的多数元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 查找数字列表中的多数元素相关的知识,希望对你有一定的参考价值。

# Uses python3
import sys


def get_majority_element(a, left, right):
    if left == right:
        return -1
    if left + 1 == right:
        return a[left]
    mid = (left + right - 1) // 2 + 1
    left_m = get_majority_element(a, left, mid)
    right_m = get_majority_element(a, mid, right)
    left_count = 0
    for i in range(left, right):
        if a[i] == left_m:
            left_count += 1
    if left_count > (right - left) // 2:
        return left_m

    right_count = 0
    for i in range(left, right):
        if a[i] == right_m:
            right_count += 1
    if right_count > (right - left) // 2:
        return right_m
    return -1


if __name__ == '__main__':
    input = sys.stdin.read()
    n, *a = list(map(int, input.split()))
    if get_majority_element(a, 0, n) != -1:
        print(1)
    else:
        print(0)

以上是关于python 查找数字列表中的多数元素的主要内容,如果未能解决你的问题,请参考以下文章

如何在python列表中查找某个元素的索引

使用列表推导查找列表中的元素,其中列表中的所有元素都是因子

使用C使用分而治之查找数组中的多数元素

查找列表中的最小元素(递归) - Python

查找列表中连续数字之间的差异(Python)

python 查找列表中的列表元素的一部分(函数)