CLOSE
🛠️ Settings

Problem Statement

Given an array of integers where every element occurs twice except for one, which occurs only once, the task is to find and return that unique element.

Examples

Example 1:

Input: arr = [4, 3, 4, 3, 2]

Output: 2

Example 2:

Input: arr = [9, 5, 7, 5, 9, 8, 8]

Output: 7

Different Approaches

1 Brute Force Approach

Code Implementation in C++:

#include <iostream>
#include <vector>

using namespace std;

int findUnique(vector<int> arr) {
    for (int i = 0; i < arr.size(); i++) {
        int count = 0;
        for (int j = 0; j < arr.size(); j++) {
            if (arr[i] == arr[j]) {
                count++;
            }
        }
        if (count == 1) {
            return arr[i];
        }
    }
    return -1; // If no unique element found
}

int main() {
    vector<int> arr = {9, 5, 7, 5, 9, 8, 8};
    cout << "Unique element is: " << findUnique(arr) << endl;
    return 0;
}

Complexity Analysis:

Time Complexity:O(n^2)

Space Complexity:O(1)

2 Using Hash Map

Code Implementation in C++:

#include <iostream>
#include <vector>
#include <unordered_map>

using namespace std;

int findUnique(vector<int> arr) {
    unordered_map<int, int> count;
    for (int num : arr) {
        count[num]++;
    }
    for (auto pair : count) {
        if (pair.second == 1) {
            return pair.first;
        }
    }
    return -1; // If no unique element found
}

int main() {
    vector<int> arr = {9, 5, 7, 5, 9, 8, 8};
    cout << "Unique element is: " << findUnique(arr) << endl;
    return 0;
}

Complexity Analysis:

Time Complexity:O(n)

Space Complexity:O(1)

3 Using XOR Operator

XOR of a number with itself is 0. So if we XOR all elements, the unique number will be left.

Code Implementation in C++:

#include <iostream>
#include <vector>

using namespace std;

int findUnique(vector<int> arr) {
    int unique = 0;
    for (int num : arr) {
        unique ^= num;
    }
    return unique;
}

int main() {
    vector<int> arr = {4, 3, 4, 3, 2};
    cout << "Unique element is: " << findUnique(arr) << endl;
    return 0;
}

Complexity Analysis:

Time Complexity:O(n)

Space Complexity:O(1)