Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm phần tử chung của ba mảng đã sắp xếp trong C++


Cho ba mảng, tìm các phần tử chung. Ví dụ [10,12,15,20,25], [10,12,13,15], [10,12,15,24,25,26] → 10, 12, 15.

Duyệt ba mảng đồng thời: nếu ba phần tử bằng nhau in ra và tăng cả ba; nếu A[i] < B[j] tăng i; nếu B[j] < C[k] tăng j; ngược lại tăng k.

Ví dụ

#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); }

Kết quả

Common elements are: 10 12 15