82 - 找出列表中出現次數超過列表長一半的元素

有一個數字列表,要找出列表中出現次數超過列表長度一半的數字,如果有2個或2個以上數字出現的次數都超過了列表長度的一半,找出第一個滿足條件的數字即可,如果列表元素個數是奇數,列表元素個數的一半取整數部分(四捨五入)

例如: 長度爲21的列表的一半取11

def moreThanHalfNum(numbers):
    d = {}
    maxNum = 'no'
    listCount = len(numbers)
    
    for n in numbers:
        if d.get(n) is None:
            d[n] = 1
            if maxNum == 'no':
                maxNum = n
        else:
            d[n] += 1
        if n != maxNum and d.get(n) > d.get(maxNum):
            maxNum = n
        if d.get(maxNum) > listCount // 2:
            return maxNum
    return 'no' 

print(moreThanHalfNum([1, 2, 3, 4, 1, 1, 1, 1]))
1

持續更新中。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章