136 Single Number


title: Single Number
tags:
- single-number
- No.136
- simple
- boolean-algebra
- bit
- array


Description

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

Corner Cases

  • ""
  • "a"
  • ","

Solutions

XOR Operation

XOR operation satisfies the law of association: (a ^ b) ^ c == a ^ (b ^ c)

Besides, since the truth table is:

0 1
0 0 1
1 1 0

Thus all pairs of the same number are reduced to zero.

The running time is O(n) with O(1) space complexity.

class Solution {
    public int singleNumber(int[] nums) {
        int xor = nums[0];
        for (int i=1; i

你可能感兴趣的:(136 Single Number)