Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのマジョリティ要素


整数の配列があるとしましょう。タスクは、指定された配列内の特定の要素のインデックスを見つけることです。たとえば、

入力-1

N = 8 A[ ] = { 1,2,4,3,3,1,1,5}

出力

1

説明 −与えられた整数の配列で、最も多く現れる数は「1」です。したがって、出力は「1」です。

入力-2

N = 6 A[ ] = {1,5,4,4,1,1}

出力

1

説明 −与えられた整数の配列で、最も多く現れる数は「1」です。したがって、出力「1」を返すことができます。

この問題を解決するためのアプローチ

指定された配列には複数の整数が含まれており、配列内に存在する最も頻繁な要素を見つける必要があります。線形時間O(n)と線形空間O(n)でこの問題を解決するために、ハッシュマップのアプローチを使用できます。

このアプローチでは、キーが要素であり、値が要素のオカレンスであるキーと値のペアで構成される順序付けられていないマップ(STLライブラリ)を作成します。マップをトラバースしているときに、番号の最大出現数を見つけて、その番号を出力として返します。

  • サイズNの配列を入力します

  • 整数関数maxOccurrence(int A []、int size)は、配列とそのサイズを入力として受け取り、最大頻度で数値を返します。

  • キーを要素として、値を頻度として、配列のすべての要素のハッシュマップを作成します。

  • マップを繰り返し処理し、最も頻度の高い要素があるかどうかを確認して、結果を数値として返します。それ以外の場合、配列に数値が存在しない場合は、「-1」を返します。

def checkMajorityElement(arr, N):
   mp = {}
   for i in range(0, N):
      if arr[i] in mp.keys():
         mp[arr[i]] += 1
      else:
         mp[arr[i]] = 1
   for key in mp:
      if mp[key] > (N / 2):
         return key
   return -1
print("Enter size of array:")
N = int(6)
print("Enter elements of array:")
arr = [2,1,1,2,2,2]
ans = checkMajorityElement(arr, N)
if ans != -1:
   print("Majority Element is: %d" % ans)
else:
   print("No majority element in array")

出力

上記のコードを実行すると、次のように出力が生成されます

Enter size of array: 6
Enter elements of array: 2 1 1 2 2 2
Majority Element is: 2

  1. 配列内の最大の要素を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、配列の最大要素を計算する必要があります。 ここでは、ループ全体をトラバースして最大の要素を計算し、要素を取得するブルートフォースアプローチを使用します。 以下の実装を観察できます。 例 # largest function def largest(arr,n):    #maximum element    max = arr[0]    # traverse the whole loop    for

  2. 配列内の最大の要素を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列を指定すると、配列内で最大の要素を見つける必要があります。 アプローチ maxを最初の要素として初期化します。 この後、指定された配列を2番目の要素から最後までトラバースします。 トラバースされたすべての要素について、現在のmaxの値と比較します maxより大きい場合、maxが更新されます。 それ以外の場合、ステートメントはを超えます 以下の実装を見てみましょう- 例 def largest(arr,n):    #maximal element