Given a sorted array consisting of only integers where every element appears twice except for one element which appears once. Find this single element that appears only once.

Example 1:

Input: [1,1,2,3,3,4,4,8,8]
Output: 2

 

Example 2:

Input: [3,3,7,7,10,11,11]
Output: 10

 

Note: Your solution should run in O(log n) time and O(1) space.

 1 class Solution {
 2 public:
 3     int singleNonDuplicate(vector<int>& nums) {
 4         int len = nums.size();
 5         int sum = 0;
 6         for (int i = 0; i < len; i++)
 7         {
 8             sum ^= nums[i];
 9         }
10         return sum;
11     }
12 };

 

posted on 2017-07-28 08:59  无惧风云  阅读(276)  评论(0编辑  收藏  举报