33. Search in Rotated Sorted Array

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.

(i.e.,[0,1,2,4,5,6,7]might become[4,5,6,7,0,1,2]).

You are given a target value to search. If found in the array return its index, otherwise return-1.

You may assume no duplicate exists in the array.

Your algorithm's runtime complexity must be in the order of O(log n).

Example 1:

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

Output: 4

Example 2:

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

Output: -1

Thoguths:

  1. Binary search, find the continuous parts by comparing nums[i] with nums[mid],

  2. Doing binary search inside: if it does not work, return -1

Code:

Code: Java

Code: C++

Last updated

Was this helpful?