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

C++の3つのソートされた配列で共通の要素を検索します


いくつかの要素を持つ3つの配列があるとします。これらの3つの配列に存在するすべての共通要素を見つける必要があります。これらの要素が[10、12、15、20、25]、[10、12、13、15]および[10、12、15、24、25、26]であるとすると、これら3つの配列の共通要素は10です。 、12および15。

配列A1を通過する現在の要素をx、A2をy、A3をzと仮定します。次のような場合があります-

  • x、y、zが同じ場合は、それらのいずれかを出力し、各配列要素を1つ増やします

  • x

  • x>zおよびy>zの場合、zを共通の要素にすることはできないため、A3に進みます。

#include<iostream>
using namespace std;
void findCommonValues(int A1[], int A2[], int A3[], int n1, int n2, int n3) {
   int i = 0, j = 0, k = 0;
   while (i < n1 && j < n2 && k < n3) {
      if (A1[i] == A2[j] && A2[j] == A3[k]) {
         cout << A1[i] << " "; i++; j++; k++;
      }
      else if (A1[i] < A2[j])
         i++;
      else if (A2[j] < A3[k])
         j++;
      else
         k++;
   }
}
int main() {
   int A1[] = {10, 12, 15, 20, 25};
   int n1 = sizeof(A1)/sizeof(A1[0]);
   int A2[] = {10, 12, 13, 15};
   int n2 = sizeof(A2)/sizeof(A2[0]);
   int A3[] = {10, 12, 15, 24, 25, 26};
   int n3 = sizeof(A3)/sizeof(A3[0]);
   cout << "Common elements are: ";
   findCommonValues(A1, A2, A3, n1, n2, n3);
}

出力

Common elements are: 10 12 15

  1. n個の配列で共通の要素を見つけるためのPythonのintersection_update()

    この記事では、Pythonのiintersection_update()について学習し、n個の配列の一般的な要素を見つけます。 問題は、リストを含む配列が与えられ、与えられた配列内のすべての共通要素を見つけることです。 アルゴリズム 1.Initializingres with the first list inside the array 2.Iterating through the array containing lists 3.Updating the res list by applying intersection_update() function to check the

  2. 3つのソートされた配列で共通の要素を見つけるPythonプログラム?

    ここでは、最初にユーザー入力のソートされていない配列である3つの配列を作成し、次に3つのソートされていない配列すべてをソートします。配列のサイズはn1、n2、n3です。すべての配列の開始アドレスは0.i =0、j =0、k =0です。次に、3つの配列のすべての要素をトラバースし、3つの配列の要素が同じかどうかを確認します。そうでない場合は、要素を印刷し、そうでない場合は次の要素に進みます。 例 A = {1, 2, 3, 4, 5} B = {2, 5, 12, 22, 7} C = {1, 9, 2, 89, 80} 出力 2 アルゴリズム commonele(A1,A2,A3,n