Cho mảng A n phần tử, mảng B là A xáo trộn và thiếu một phần tử. Tìm phần tử thiếu. Ví dụ A=[4,8,1,3,7], B=[7,4,3,1] → 8.
Dùng XOR: XOR tất cả phần tử A và B, kết quả là phần tử thiếu vì x XOR x = 0.
Ví dụ
#include<iostream> using namespace std; int FindMissingElement(int A[], int B[], int n) { int min_element = 0; for (int i = 0; i < n; i++) min_element = min_element ^ A[i]; for (int i = 0; i < n - 1; i++) min_element = min_element ^ B[i]; return min_element; } int main() { int A[] = {4, 8, 1, 3, 7}; int B[] = {7, 4, 3, 1}; int n = sizeof(A) / sizeof(A[0]); cout << "Missing element: " << FindMissingElement(A, B, n); }
Kết quả
Missing element: 8