Last updated on October 9th, 2024 at 06:09 pm
Here, We see Find Minimum in Rotated Sorted Array II LeetCode Solution. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.
List of all LeetCode Solution
Topics
Array, Binary Search
Level of Question
Hard
Find Minimum in Rotated Sorted Array II LeetCode Solution
Table of Contents
Problem Statement
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.
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
1. Find Minimum in Rotated Sorted Array II LeetCode Solution C++
class Solution { public: int findMin(vector<int>& nums) { int n = nums.size(); int low=0, high=n-1; while(low<high){ if(nums[low] <= nums[high]) return nums[low]; int mid = low + (high-low)/2; if(nums[low] > nums[mid]){ high=mid; } else if(nums[mid] > nums[high]) { low=mid+1; } } if(nums[low] <= nums[high]) return nums[low]; return -1; } };
2. Find Minimum in Rotated Sorted Array II LeetCode Solution 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 = m; else l = m + 1; } return nums[l]; } }
3. Find Minimum in Rotated Sorted Array II LeetCode Solution JavaScript
var findMin = function(nums) { var left = 0, right = nums.length - 1 while (left < right){ var mid = Math.floor((left + right)/2) if (nums[mid] > nums[right]) left = mid + 1 else right = mid } return nums[left] };
4. Find Minimum in Rotated Sorted Array II Solution Python
class Solution: def findMin(self, num): first, last = 0, len(num) - 1 while first < last: midpoint = (first + last) // 2 if num[midpoint] > num[last]: first = midpoint + 1 else: last = midpoint return num[first]