「ソードフィンガーオファー」の配列に半分以上出現する数

「ソードフィンガーオファー」の配列に半分以上出現する数

どこに行くのかわかりませんが、もう途中です!
会ったことはありませんが、時間は急いでいますが、ユシに会いました。本当に素晴らしい運命です。ご来店ありがとうございました!
  • 質問
    配列内数値の出現回数が配列の長さの半分を超えています。この数値を調べてください。たとえば、長さが9の配列{1,2,3,2,2,2,5,4,2}を入力します。配列の長さの半分以上である数値2が配列に5回出現するため、2が出力されます。存在しない場合は0を出力します。
示例 1 :
输入:[1,2,3,2,2,2,5,4,2]
返回值:2
  • コード1:
# -*- coding:utf-8 -*-
class Solution:
    def MoreThanHalfNum_Solution(self, numbers):
        length = len(numbers) // 2
        result = {
    
    }
        for i in numbers:
            if i not in result:
                result[i] = 1
            else:
                result[i] += 1
            if result[i] > length:
                return i
        return 0
  • アルゴリズム記述:
    配列の長さの半分を検索し、空の辞書を作成し、
    トラバース配列要素一つずつ電流要素が辞書にない場合、1にキー値を設定して辞書に現在の要素を格納する。
    場合現在の要素はディクショナリにあり、キー値を設定します+1
    キー値が長さの半分を超える場合は現在の要素が返され、それ以外の場合は0が返されます。

おすすめ

転載: blog.csdn.net/qq_34331113/article/details/115058390