136. Single Number

Difficulty:
Related Topics:
Similar Questions:

Problem

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

Solution (Java)

class Solution {
    public int singleNumber(int[] nums) {
        int res = 0;
        for (int num : nums) {
            res ^= num;
        }
        return res;
    }
}

Solution (Javascript)

/**
 * @param {number[]} nums
 * @return {number}
 */
var singleNumber = function(nums) {
  var res = 0;
  var len = nums.length;
  for (var i = 0; i < len; i++) {
    res ^= nums[i];
  }
  return res;
};

Explain:

XOR

Complexity: