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

Paintings of caves: myth and religion

Paintings by Bosch, Giorgione, Velázquez, Jordaens, Benjamin West, Joseph Wright, Ingres, Ecksersberg, Ary Scheffer and others.

via The Eclectic Light Company

The Pelican comparison grid for Astra is pretty interesting

via Simon Willison

Radical responsibility means treating people like tools

A lot of people think that good leadership requires radical responsibility. Conscious Leadership defines it like this:

Taking full responsibility for one’s circumstances (physically, emotionally, mentally and spiritually) is the foundation of true personal and relational transformation. Conscious l...

via Sean Goedecke