Problem
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]
).
Find the minimum element.
The array may contain duplicates.
Example 1:
1 |
|
Example 2:
1 |
|
Note:
- This is a follow up problem to Find Minimum in Rotated Sorted Array.
- Would allow duplicates affect the run-time complexity? How and why?
Explanation
-
Similar to 153. Find Minimum in Rotated Sorted Array, this time there’s possibility that
nums[left] == nums[mid] == nums[right]
, and we don’t know which side of the array need to be check. -
To solve this, we can simply apply the same method as before, but this time, we add one more if condition, if
nums[right] == nums[mid]
, then we moveright
to the left 1 step. This method doesn’t affect our solution since we just remove one repeated number.
Solution
1 |
|