Single Number

Problem

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.

Example 1:

Input: nums = [2,2,1]
Output: 1
Example 2:

Input: nums = [4,1,2,1,2]
Output: 4
Example 3:

Input: nums = [1]
Output: 1

Constraints:

  • 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.

Solution

Relies on that xor trick. Related.

class Solution {
    public int singleNumber(int[] nums) {
        var counter = 0;
        for (var n : nums) {
            counter ^= n;
        }
        return counter;
    }
}

Recent posts from blogs that I like

In Memoriam Sofonisba Anguissola, who died 400 years ago

Completed her training in about 1553, met Michelangelo in Rome in 1554, where she became an established portraitist, invited to the court of King Philip II of Spain, advised the young van Dyck, and died in her early 90s.

via The Eclectic Light Company

What happens if AI labs train for pelicans riding bicycles?

via Simon Willison

Valve is about to win the console generation

Valve does nothing and still wins

via Xe Iaso