Find Element that Appears Once in Sorted Array?
(Others Appear Twice)
int SingleNonDuplicate(int[] nums)
int low = 0, high = nums.Length - 1;
while (low < high)
int mid = low + (high - low) / 2;
if (mid % 2 == 1) mid--; // ensure mid is even
if (nums[mid] == nums[mid + 1])
low = mid + 2;
else
high = mid;
Follow on:
return nums[low];
Explanation:
Pairs appear consecutively; use binary search on even indices to find mismatch.