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

Tìm phần tử khác biệt duy nhất trong mảng bằng C++

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