Single Element in a Sorted Array

sorted肯定是让二分了, 但是这个二分需要判断奇偶, 所以先发个不二分的.

class Solution {
    public int singleNonDuplicate(int[] nums) {
        int n = nums[0];
        for(int i = 1; i < nums.length; i++) {
            n ^= nums[i]; // xor remove all twice numbers 
        }
        return n;
    }
}
class Solution {
    public int singleNonDuplicate(int[] nums) {
        int lo = 0;
        int hi = nums.length - 1;
        while(lo < hi) {
            int mid = lo + (hi - lo) / 2;
            if(mid % 2 != 0) // if it is not a even number, make it even number
                mid += 1;
            if(nums[mid] == nums[mid-1])
                hi = mid - 2;
            else
                lo = mid;
        }
        
        return nums[lo];
    }
}