最頻要素とは、配列内で最も頻繁に出現する要素のことです。以下に、最頻要素を取得するためのいくつかのアプローチを説明します。
-
ハッシュマップを使用する方法:
- ハッシュマップを使用して、各要素の出現回数を数えます。
- 配列を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
-
ソートを使用する方法:
- 配列を昇順または降順にソートします。
- ソートされた配列を走査し、連続する要素の出現回数を数えます。
- 最も出現回数の多い連続した要素を最頻要素として返します。
以下は、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
上記の方法を使用すると、配列内の最頻要素を取得することができます。それぞれのアプローチは効率的であり、一般的なケースで良好なパフォーマンスを提供します。