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*

*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 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

**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]