Mid Coding

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.

More from C# Programming Tutorial

All questions for this course