Single Number:
Given a non-empty array of integers nums
, every element appears twice except for one. Find that single one.
You must implement a solution with a linear runtime complexity and use only constant extra space.
Input: nums = [2,2,1]
Output: 1
Input: nums = [4,1,2,1,2]
Output: 4
Input: nums = [1]
Output: 1
1 <= nums.length <= 3 * 10^4
-3 * 10^4 <= nums[i] <= 3 * 10^4
Each element in the array appears twice except for one element which appears only once.
Try this Problem on your own or check similar problems:
public int singleNumber(int[] nums) {
int res = 0;
for(int num: nums){
res ^= num;
}
return res;
}
As in Missing Number the brute-force is trivial loop over range 1..n and check if the element exists in auxiliary (helper) data structure (for example set), if not just place it in the resulting array. However we can use the XOR operator (you can find detailed description in Missing Number ), since all numbers in pair will eliminate each other (x^x=0) and the only number remaining will be the number appearing only once in the input array.
Don’t settle for anything less than the crown. Join our newsletter and become the King of Interviews! Click here to join now and get the latest updates.