| 1234567891011121314151617181920212223242526 | 
							- func singleNonDuplicate(nums []int) int {
 
- 	n := len(nums)
 
- 	if n == 0 {
 
- 		return 0
 
- 	}
 
- 	beg, end := 0, n-1
 
- 	for beg < end { // Binary search
 
- 		mid := beg + (end-beg)/2
 
- 		if nums[mid] == nums[mid+1] {
 
- 			if (mid-beg)&1 == 1 {
 
- 				end = mid - 1
 
- 			} else {
 
- 				beg = mid + 2
 
- 			}
 
- 		} else {
 
- 			if mid == 0 || nums[mid-1] != nums[mid] {
 
- 				return nums[mid]
 
- 			} else if (end-mid)&1 == 1 {
 
- 				beg = mid + 1
 
- 			} else {
 
- 				end = mid - 2
 
- 			}
 
- 		}
 
- 	}
 
- 	return nums[beg]
 
- }
 
 
  |