搜索旋转排序数组
目录
搜索旋转排序数组
题目:
https://leetcode-cn.com/problems/search-in-rotated-sorted-array/
思路:
明显的二分查找,不过不是有序数组了,而是部分有序,所以需要有判断
代码:
class Solution(object):
def search(self, nums, target):
= 0, len(nums) - 1
left, right while left <= right:
= left + (right - left) // 2
mid if nums[mid] == target:
return mid
if nums[mid] < nums[right]:#右边为升序
if nums[mid] < target <= nums[right]:
= mid + 1
left else:
= mid
right if nums[left] <= nums[mid]:#左边为升序
if nums[left] <= target < nums[mid]:
= mid
right else:
= mid + 1
left return -1