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 查找数字列表中的多数元素的主要内容,如果未能解决你的问题,请参考以下文章