Sunday, January 11, 2015

LeetCode 136: Single Number

Given an 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?
public class Solution {
    public int singleNumber(int[] A) {
        // Adopt XOR
        // A ^ A = 0
        // A ^ B = 1
        // A ^ B ^ A = B
        int res = A[0];
        
        for (int i = 1; i < A.length; i++)
            res = res ^ A[i];
        
        return res;
    }
}

No comments:

Post a Comment