# Search in Rotated Sorted [[array|Array]] https://leetcode.com/problems/search-in-rotated-sorted-array/ ## Solution 1 Use [[min-in-rorated-sorted-array]] to find the pivot, reconstruct the sorted array, then search in the array, with shifted index. Two [[binary-search]]es required. ## Solution 2 Alternatively, use only one round of [[binary-search]]. Determine next step based on whether left or right subarray is sorted. ```python n = len(nums) left, right = 0, n - 1 while left <= right: mid = (left + right) // 2 if nums[mid] == target: return mid if nums[mid] >= nums[left]: # Left subarray is sorted if nums[mid] >= target >= nums[left]: right = mid else: left = mid + 1 else: # Right subarray is sorted if nums[mid] <= target <= nums[right]: left = mid + 1 else: right = mid return left if nums[left] == target else -1 ```