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

Writing is no longer proof of work

Tech companies structurally depend on writing to serve as evidence, in the same way that Bitcoin depends on proof-of-work hashing. However, in the last few years, LLMs have started to undermine this practice.

How can writing be like proof-of-work? When I’m writing something at work, it’s not always ...

via Sean Goedecke

Paintings of gales 1

Paintings by Magnasco, Claude Vernet, a print by Hokusai, and more by Turner, Peder Balke, Clarkson Stanfield, Courbet, Gainsborough, and Daubigny.

via The Eclectic Light Company

How is music possible

If you take a scene from a horror movie and add funny music, the killer suddenly looks hilarious. Isn’t it strange that that happens?

via Henrik Karlsson