pythonの配列(リスト)の中で最も多い数を見つける方法を解説(コード付き)

スポンサーリンク

この記事では、pythonプログラミング言語の簡単な問題を理解することにします。

この問題はとても簡単ですが、多くの就職面接で聞かれる可能性があります。


マジョリティー・エレメントの問題を理解する

このプログラムでは,ユーザはN個の要素を持つ配列Aを入力する必要がある.このプログラムは,配列中の多数決要素を見つけることを目的としている.

サイズ N の配列 A の多数決要素とは,配列中に N/2 回以上出現した要素のことである.

プログラムは多数決要素を返すか、多数決要素が見つからない/存在しない場合は-1を返す。


スポンサーリンク

Pythonによるマジョリティ要素探索の実装

実装では、まず配列のサイズを入力し、スペースで区切って配列の全要素を取得します。

次に、配列の各要素の個数を辞書形式で保存し、要素の個数と対応させます。

最後に、各要素のカウントをn/2でチェックし、カウントがn/2より大きくなるたびにその数を返し、そうでない場合は-1を返すことになります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def check_majority(arr, N):
   map = {}
   for i in range(0, N):
      if arr[i] in map.keys():
         map[arr[i]] += 1
      else:
         map[arr[i]] = 1
   for key in map:
      if map[key] > (N / 2):
         return key
   return -1
 
 
arr = list(input("Enter elements of array:"))
size = len(arr)
ans = check_majority(arr, size)
if ans != -1:
   print("Majority Element is: ", ans)
else:
   print("No majority element in array")

サンプル出力

Enter elements of array:1111111212121
Majority Element is1

まとめ

問題文とコードの実装について、ご理解いただけたでしょうか。

そして、この同じ問題を解決する方法は複数存在する可能性があります。

それでは、よい勉強を


タイトルとURLをコピーしました