81. Search in Rotated Sorted Array II

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

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

You are given a target value to search. If found in the array returntrue, otherwise returnfalse.

Example 1:

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

Output: true

Example 2:

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

Output: false

Follow up:

  • This is a follow up problem to Search in Rotated Sorted Array, where numsmay contain duplicates.

  • Would this affect the run-time complexity? How and why?

Thoughts:

  1. only change is to consider case where both num[i] == num[j] == num[mid]: (i.e [3,1,2,3,3,3]), we should both update i and j by 1.

  2. Selecting the pivot: then compare the mid value with the pivot to decide which side is monotuous

Code: T:(O(n) ~ O(logn));

Python: Pivot

Last updated

Was this helpful?