154. Find Minimum in Rotated Sorted Array II
Description
Suppose an array of length n
sorted in ascending order is rotated between 1
and n
times. For example, the array nums = [0,1,4,4,5,6,7]
might become:
[4,5,6,7,0,1,4]
if it was rotated4
times.[0,1,4,4,5,6,7]
if it was rotated7
times.
Notice that rotating an array [a[0], a[1], a[2], ..., a[n-1]]
1 time results in the array [a[n-1], a[0], a[1], a[2], ..., a[n-2]]
.
Given the sorted rotated array nums
that may contain duplicates , return the minimum element of this array.
Example 1:
Example 2:
Constraints:
n == nums.length
1 <= n <= 5000
-5000 <= nums[i] <= 5000
nums
is sorted and rotated between1
andn
times.
Follow up: This is the same as Find Minimum in Rotated Sorted Array but with duplicates. Would allow duplicates affect the run-time complexity? How and why?
Tags
Array, Binary Search
Solution
Based on the solution for LeetCode 153. Find Minimum in Rotated Sorted Array, we need to consider the case when nums[mid] == nums[end]
. We can simply do end--
, because though we cannot determine whether the minimum value is on the left side of mid
or on the right side, we can remove nums[end]
because nums[mid]
is a substitute of that.
Complexity
Time complexity (worst): , if the elements in the array are exactly the same, we need to do for-loop
n
times.Space complexity:
Code
Reference
Last updated
Was this helpful?