配列内の最頻要素を取得する方法


最頻要素とは、配列内で最も頻繁に出現する要素のことです。以下に、最頻要素を取得するためのいくつかのアプローチを説明します。

  1. ハッシュマップを使用する方法:

    • ハッシュマップを使用して、各要素の出現回数を数えます。
    • 配列を1回走査し、各要素をハッシュマップに追加します。既に要素が存在する場合は、出現回数をインクリメントします。
    • ハッシュマップを走査し、最頻要素を特定します。

    以下は、Pythonでの実装例です:

    from collections import defaultdict
    def majority_element(nums):
       counts = defaultdict(int)
       for num in nums:
           counts[num] += 1
       majority = max(counts, key=counts.get)
       return majority
  2. ソートを使用する方法:

    • 配列を昇順または降順にソートします。
    • ソートされた配列を走査し、連続する要素の出現回数を数えます。
    • 最も出現回数の多い連続した要素を最頻要素として返します。

    以下は、Pythonでの実装例です:

    def majority_element(nums):
       nums.sort()
       count = 1
       max_count = 1
       majority = nums[0]
       for i in range(1, len(nums)):
           if nums[i] == nums[i-1]:
               count += 1
               if count > max_count:
                   max_count = count
                   majority = nums[i]
           else:
               count = 1
       return majority

上記の方法を使用すると、配列内の最頻要素を取得することができます。それぞれのアプローチは効率的であり、一般的なケースで良好なパフォーマンスを提供します。