Leetcode每日一题2021/01/12

Leetcode每日一题2021/01/12_第1张图片
Leetcode每日一题2021/01/12_第2张图片

  • 代码
class Solution:
    def search(self, nums: List[int], target: int) -> int:
        n = len(nums)
        left, right = 0, n-1
        while(left <= right):
            mid = left + (right - left)//2
            if(nums[mid] == target):
                return mid
            if(nums[mid] < nums[right]):
                # [mid, right]有序
                if(nums[mid] < target and target <= nums[right]):
                    left = mid + 1
                else:
                    right = mid - 1
            else:
                # [left, mid]有序
                if(nums[left] <= target and target < nums[mid]):
                    right = mid - 1
                else:
                    left = mid + 1
        return -1

3

你可能感兴趣的:(Leetcode,leetcode,算法,python)