2014.1.13 20:17
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?
Solution:
Exclusive OR is a wonderful operator.
Time complexity is O(n), space complexity is O(1).
Accepted code:
1 class Solution { 2 public: 3 int singleNumber(int A[], int n) { 4 // Note: The Solution object is instantiated only once and is reused by each test case. 5 int res = 0; 6 7 for(int i = 0; i < n; ++i){ 8 res ^= A[i]; 9 } 10 11 return res; 12 } 13 };