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

Pythonで重複した配列から失われた要素を見つける


1つの要素を除いて互いに重複している2つの配列があるとすると、指定された配列の1つから1つの要素が欠落している場合、その欠落している要素を見つける必要があります。

>

したがって、入力がA =[2、5、6、8、10]、B =[5、6、8、10]の場合、2番目の配列に2がないため、出力は2になります。

>

これを解決するには、次の手順に従います-

  • 関数solve()を定義します。これにはA、B、Nが必要です

  • Nが1と同じ場合、

    • A [0];

      を返します
  • A[0]がB[0]と同じでない場合、

    • A [0]

      を返します
  • 低:=0、高:=N-1

  • 低<高、実行

    • 中:=(低+高)/ 2

    • A[mid]がB[mid]と同じ場合、

      • 低:=中

    • それ以外の場合

      • 高:=中

    • lowがhigh-1と同じ場合、

      • ループから出てきます

  • A[高]を返す

  • メインの方法から、次のようにします-

  • M:=Aのサイズ、N:=Bのサイズ

  • NがM-1と同じ場合、

    • リターンソルブ(A、B、M)

  • それ以外の場合、MがN-1と同じである場合、

    • リターンソルブ(B、A、N)

  • それ以外の場合

    • 「見つかりません」を返す

理解を深めるために、次の実装を見てみましょう-

def solve(A, B, N):
   if N == 1:
      return A[0];
   if A[0] != B[0]:
      return A[0]
   low = 0
   high = N - 1
   while (low < high):
      mid = (low + high) / 2
      if A[mid] == B[mid]:
         low = mid
      else:
         high = mid
      if low == high - 1:
         break
   return A[high]
def get_missing_element(A, B):
   M = len(A)
   N = len(B)
   if N == M-1:
      return solve(A, B, M)
   elif M == N-1:
      return solve(B, A, N)
   else:
      return "Not found"

A = [2, 5, 6, 8, 10]
B = [5, 6, 8, 10]
print(get_missing_element(A, B))

入力

[2, 5, 6, 8, 10], [5, 6, 8, 10]

出力

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