Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหาองค์ประกอบทั่วไปในสามอาร์เรย์ที่จัดเรียงใน C ++


สมมติว่าเรามีสามอาร์เรย์ที่มีองค์ประกอบบางอย่าง เราต้องหาองค์ประกอบทั่วไปทั้งหมดที่มีอยู่ในอาร์เรย์ทั้งสามนี้ สมมติว่าองค์ประกอบเหล่านี้เป็น [10, 12, 15, 20, 25], [10, 12, 13, 15] และ [10, 12, 15, 24, 25, 26] ดังนั้นองค์ประกอบทั่วไปในอาร์เรย์ทั้งสามนี้คือ 10 , 12 และ 15.

สมมติว่าองค์ประกอบปัจจุบันเคลื่อนที่ในอาร์เรย์ A1 เป็น x, A2 เป็น y และ A3 เป็น z เราสามารถมีกรณีต่อไปนี้สำหรับพวกเขา -

  • ถ้า x, y และ z เหมือนกัน เราจะพิมพ์สิ่งใดสิ่งหนึ่ง และเพิ่มแต่ละองค์ประกอบอาร์เรย์ขึ้น 1

  • เมื่อ x

  • เมื่อ x> z และ y> z เราจะก้าวไปข้างหน้าสำหรับ A3 เนื่องจาก z ไม่สามารถเป็นองค์ประกอบทั่วไปได้

ตัวอย่าง

#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