Search in Rotated Sorted Array

IF
AlgoAxiomStaff Engineers
JSTS
Medium20 mins

Given an integer array nums sorted in ascending order with distinct values, which is possibly rotated at an unknown pivot index, and an integer target, return the index of target if it is in nums, or -1 if it is not.

You must write an algorithm with O(log n) runtime complexity.

Examples

Example 1:

Input: nums = [4, 5, 6, 7, 0, 1, 2], target = 0

Output: 4

Explanation: 0 is found at index 4.

Example 2:

Input: nums = [4, 5, 6, 7, 0, 1, 2], target = 3

Output: -1

Explanation: 3 is not in the array.

Example 3:

Input: nums = [1], target = 0

Output: -1

Constraints

  • 1 <= nums.length <= 5000
  • -10^4 <= nums[i] <= 10^4
  • All values of nums are unique
  • nums is an ascending array that is possibly rotated
Source: Modified Binary Search pattern — AlgoAxiom
JavaScript
Test Case 1
root = [1, 2, 3]
Test Case 2
root = [1, 2, 3, 4, 5]
Idle