Mô tả bài toán
Cho mảng chỉ có 2 giá trị phân biệt, một giá trị xuất hiện một lần, còn lại giống nhau. Tìm giá trị duy nhất đó.
Ví dụ
arr={1,1,1,2,1,1,1,1} → Output: 2.
Giải thuật O(N)
So sánh 3 phần tử đầu để xác định giá trị phổ biến. Sau đó duyệt từ chỉ số 3 tìm phần tử khác giá trị phổ biến.
Mã nguồn C++
#include <iostream>
using namespace std;
int findDiffElementArray(int arr[], int n) {
if (n==1) return -1;
if (n==2) return arr[0];
if (arr[0]==arr[1] && arr[0]!=arr[2]) return arr[2];
if (arr[0]==arr[2] && arr[0]!=arr[1]) return arr[1];
if (arr[1]==arr[2] && arr[0]!=arr[1]) return arr[0];
for (int i=3; i
Đầu ra
The different element in the array is 1