Mô tả bài toán
Cho mảng kích thước n chứa các số trong khoảng [min, min+n], thiếu một số. Tìm số thiếu.
Ví dụ
arr={4,8,5,7} → min=4, khoảng [4..8], thiếu 6.
Giải thuật (XOR)
XOR tất cả phần tử mảng và XOR tất cả số trong khoảng [min, min+n]. Kết quả XOR hai giá trị là số thiếu.
Mã nguồn C++
#include <bits/stdc++.h>
using namespace std;
int findMissingNumArr(int arr[], int n) {
int mn = *min_element(arr, arr+n);
int xorArr = 0, xorRange = mn;
for (int i=0; i
Đầu ra
The missing value in the array is 6