python leetcode 33. Search in Rotated Sorted Array

二分查找,注意if判断和退出循环的条件

class Solution(object):
    def search(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        start = 0 
        end = len(nums) - 1 
        while start<=end:
            mid = (start+end)//2
            if nums[mid] == target:
                return mid 
            
            if nums[mid]>=nums[start]:
                if nums[mid]> target and nums[start]<=target:
                    end = mid-1
                else:
                    start = mid + 1
            if nums[mid]<nums[end]:
                if nums[mid]< target and nums[end]>=target:
                    start = mid+1
                else:
                    end = mid - 1
        return -1

猜你喜欢

转载自blog.csdn.net/Neekity/article/details/84864697