154. Find Minimum in Rotated Sorted Array II LeetCode Solution
In this guide, you will get 154. Find Minimum in Rotated Sorted Array II LeetCode Solution with the best time and space complexity. The solution to Find Minimum in Rotated Sorted Array II problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Find Minimum in Rotated Sorted Array II solution in C++
- Find Minimum in Rotated Sorted Array II solution in Java
- Find Minimum in Rotated Sorted Array II solution in Python
- Additional Resources

Problem Statement of Find Minimum in Rotated Sorted Array II
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 rotated 4 times.
[0,1,4,4,5,6,7] if it was rotated 7 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.
You must decrease the overall operation steps as much as possible.
Example 1:
Input: nums = [1,3,5]
Output: 1
Example 2:
Input: nums = [2,2,2,0,1]
Output: 0
Constraints:
n == nums.length
1 <= n <= 5000
-5000 <= nums[i] <= 5000
nums is sorted and rotated between 1 and n times.
Follow up: This problem is similar to Find Minimum in Rotated Sorted Array, but nums may contain duplicates. Would this affect the runtime complexity? How and why?
Complexity Analysis
- Time Complexity: O(\log n) \to O(n)
- Space Complexity: O(1)
154. Find Minimum in Rotated Sorted Array II LeetCode Solution in C++
class Solution {
public:
int findMin(vector<int>& nums) {
int l = 0;
int r = nums.size() - 1;
while (l < r) {
const int m = (l + r) / 2;
if (nums[m] == nums[r])
--r;
else if (nums[m] < nums[r])
r = m;
else
l = m + 1;
}
return nums[l];
}
};
/* code provided by PROGIEZ */
154. Find Minimum in Rotated Sorted Array II LeetCode Solution in Java
class Solution {
public int findMin(int[] nums) {
int l = 0;
int r = nums.length - 1;
while (l < r) {
final int m = (l + r) / 2;
if (nums[m] == nums[r])
--r;
else if (nums[m] < nums[r])
r = m;
else
l = m + 1;
}
return nums[l];
}
}
// code provided by PROGIEZ
154. Find Minimum in Rotated Sorted Array II LeetCode Solution in Python
class Solution:
def findMin(self, nums: list[int]) -> int:
l = 0
r = len(nums) - 1
while l < r:
m = (l + r) // 2
if nums[m] == nums[r]:
r -= 1
elif nums[m] < nums[r]:
r = m
else:
l = m + 1
return nums[l]
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.