540. Single Element in a Sorted Array
Question
Code
class Solution:
def singleNonDuplicate(self, nums: List[int]) -> int:
n = len(nums)
if n == 1:
return nums[0]
l, r = 0, n - 1
while l <= r:
m = l + (r - l) // 2
if m - 1 >= 0 and nums[m] == nums[m - 1]:
if (m - 0 + 1) % 2 == 0:
l = m + 1
else:
r = m - 1
elif m + 1 < n and nums[m] == nums[m + 1]:
if (n - m ) % 2 == 0:
r = m - 1
else:
l = m + 1
else:
return nums[m]