Search⌘ K
AI Features

Search in Rotated Sorted Array II

Explore techniques to efficiently search for a target integer in rotated sorted arrays that may contain duplicates. This lesson guides you through applying a modified binary search to optimize searching speed, helping you develop solutions that minimize operations while handling edge cases. By working through this problem, you'll strengthen your ability to solve common algorithmic challenges presented in coding interviews.

Statement

You are required to find an integer value target in an array arr of non-distinct integers. Before being passed as input to your search function, arr has been processed as follows:

  • It has been sorted in non-descending order.

  • It has been rotated around some pivot kk, such that, after rotation, it looks like this: [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]]. For example, [10, 30, 40, 42, 42, 47, 78, 90, 901], rotated around pivot k=5k=5 becomes [47, 78, 90, 901, 10, 30, 40, 42, 42].

Return TRUE if t exists in the rotated, sorted array arr, and FALSE otherwise, while minimizing the number of operations in the search.

Note: In this problem, the value of kk is not passed to your search function.

Constraints

  • 11 \leq arr.length 1000\leq 1000

  • 104-10^4 \leq arr[i] 104\leq 10^4

  • arr is guaranteed to be rotated at some pivot index.

  • 104-10^4 \leq t 104\leq 10^4

Examples

Understand the problem

Let’s take a moment to make sure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem:

Technical Quiz
1.

What is the value of the pivot kk around which this sorted array has been rotated?

arr = [-10, -9, -7, 20, -29, -21]

A.

3

B.

2

C.

4

D.

6


1 / 4

Figure it out!

We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.

Note: As an additional challenge, we have intentionally hidden the solution to this puzzle.

Sequence - Vertical
Drag and drop the cards to rearrange them in the correct sequence

1
2
3
4
5
6

Try it yourself

Implement your solution in the following coding playground.

We have left the solution to this challenge as an exercise for you. The optimal solution to this problem runs in O(n) time and takes O(1) space. You may try to translate the logic of the solved puzzle into a coded solution.

C++
usercode > main.cpp
bool Search(vector<int> arr, int target)
{
// Replace this placeholder return statement with your code
return false;
}
Search in Rotated Sorted Array II