python 序列中出现次数超过N / 3的元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 序列中出现次数超过N / 3的元素相关的知识,希望对你有一定的参考价值。

# 找到次数超过n/3的元素

def find_over_1_3(A):
    length = len(A)
    num = [0, 0]
    count = [0, 0]
    for i in A:
        if i in num:
            count[num.index(i)] += 1
        else:
            if 0 in count:
                num[count.index(0)] = i
                count[count.index(0)] = 1
            else:
                count[0] -= 1
                count[1] -= 1
    L = []
    if count[0] != 0 and A.count(num[0]) > length / 3:
        L.append(num[0])
    if count[1] != 0 and A.count(num[1]) > length / 3:
        L.append(num[1])
    return L

def main():
    A = [3, 2, 1, 3, 4, 3, 1, 3, 1, 5, 1, 2, 3, 1]
    print(find_over_1_3(A))

if __name__ == "__main__":
    main()

以上是关于python 序列中出现次数超过N / 3的元素的主要内容,如果未能解决你的问题,请参考以下文章

python学习--统计序列中元素出现的频度(次数)

python之Counter类:计算序列中出现次数最多的元素

Python练习题3.6求整数序列中出现次数最多的数-修正版

python如何求一个众数

python_如何统计序列中元素

leetcode-Majority Element II-229