leetcode--81-搜索旋转排序数组②

题目描述: 33题

方法一:

class Solution:
    def search(self, nums: List[int], target: int) -> bool:
        l, r = 0, len(nums) - 1
        while l <= r:
            m = (l+r) // 2
            if target == nums[m]:
                return True
            if nums[m]==nums[l]==nums[r]:
                l += 1
                r -= 1
            elif nums[m] >= nums[l]:
                if nums[l] <= target < nums[m]:
                    r = m - 1
                else:
                    l = m + 1
            else:
                if nums[m] < target <= nums[r]:
                    l = m + 1
                else:
                    r = m - 1
        return False

 

posted @ 2019-07-13 11:54  oldby  阅读(416)  评论(0编辑  收藏  举报