Leetcode 540 Solution

This article provides solution to leetcode question 540 (single-element-in-a-sorted-array).

https://leetcode.com/problems/single-element-in-a-sorted-array

Solution

class Solution:
    def singleNonDuplicate(self, nums: List[int]) -> int:
        if len(nums) == 1:
            return nums[0]

        l = 0
        r = len(nums) - 1
        
        while l < r:
            m = (l + r) // 2
            
            if m % 2 == 0:
                if nums[m] == nums[m + 1]:
                    l = m + 1
                else:
                    r = m
            elif m % 2 == 1:
                if nums[m] != nums[m + 1]:
                    l = m + 1
                else:
                    r = m
        
        return nums[l]