DDSA Solutions

Unique Number III

Time: O(32n)
Space: O(1)
Advertisement

Intuition

Find element appearing once when all others appear three times. Bit counting modulo 3.

Algorithm

  1. 1For each bit position: count how many numbers have this bit set. If count % 3 != 0: unique number has this bit.

Common Pitfalls

  • Same as LC 137. 32-bit scan, each bit modulo 3. O(32n) = O(n).
Unique Number III.java
Java
// Approach: Bit counting modulo 3. For each bit position, count total 1s; the unique element has count % 3 != 0.
// Time: O(32n) Space: O(1)
class Solution {
    public int getSingle(int[] arr) {
        int res = 0;

        for (int i = 0; i < 32; i++) {
            int bitsum = 0;
            for (int num : arr) {
                if (((num >> i) & 1) != 0)
                    bitsum++;
            }
            
            if (bitsum % 3 != 0)
                res |= (1 << i);
        }
        return res;
    }
}
Advertisement
Was this solution helpful?