Single Number

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 };

 

 posted on 2014-01-13 20:19  zhuli19901106  阅读(115)  评论(0编辑  收藏  举报