Given a non-empty array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Example 1:
Input: [2,2,1]
Output: 1
Example 2:
Input: [4,1,2,1,2]
Output: 4
I found one solution
Bit Manipulation Concept
If we take XOR of zero and some bit, it will return that bit
a \oplus 0 = aa⊕0=a
If we take XOR of two same bits, it will return 0
a \oplus a = 0a⊕a=0
a \oplus b \oplus a = (a \oplus a) \oplus b = 0 \oplus b = ba⊕b⊕a=(a⊕a)⊕b=0⊕b=b
So we can XOR all bits together to find the unique number.
i tried to implement same approach in javascript like this
var singleNumber = function(nums) {
let a = 0
nums.forEach((i)=>{
console.log( a^=i)
console.log( a)
a^=i;
})
return a
};
console.log(singleNumber([2,2,1]))
but it is not giving correct solution