class Solution:
    # time O(lgN) space O(1)
    def search(self, nums: List[int], target: int) -> int:
        if len(nums) < 2:
            return 0 if nums[0] == target else -1
        l,r = 0,len(nums)-1
        while l <= r:
            mid = l + (r-l)//2
            if nums[mid] == target:
                return mid
            elif nums[mid] < target:
                l += 1
            else: r -= 1
        return -1