本文共 613 字,大约阅读时间需要 2 分钟。
如果没有记错,这是剑指 offer上的题目,我自己写了一个,但是分类分的逻辑实在有问题,还是参照了一下别人的。
left, right = 0, len(nums) - 1 while left <= right : mid = (left+right) // 2 if nums[mid] == target : return True if nums[mid] == nums[left] : left += 1 elif nums[mid] > nums[left] : if nums[mid] > target and nums[left] <= target : right = mid - 1 else : left = mid + 1 else : if nums[mid] < target and nums[right] >= target : left = mid + 1 else : right = mid - 1 return False