package problems.easy;
/**
* Created by sherxon on 3/26/17.
*/
public class SingleElementinSortedArray {
public static void main(String[] args) {
System.out.println(singleNonDuplicate(new int[]{1, 1, 2}));
}
static public int singleNonDuplicate(int[] a) {
if (a.length == 1) return a[0];
int i = 0;
int j = a.length - 1;
while (i <= j) {
int mid = i + (j - i) / 2;
int nei = mid;
if (mid > 0 && a[mid] == a[mid - 1]) nei = mid - 1;
else if (mid < a.length - 1 && a[mid] == a[mid + 1]) nei = mid + 1;
if (mid == nei) return a[mid];
int left = Math.min(mid, nei);
if (left % 2 != 0) j = left - 1;
else i = Math.max(nei, mid) + 1;
}
return -1;
}
}