Last updated on October 5th, 2024 at 09:09 pm
Here, We see Find Minimum in Rotated Sorted Array 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
Companies
Microsoft
Level of Question
Medium
Find Minimum in Rotated Sorted Array 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,2,4,5,6,7] might become:
- [4,5,6,7,0,1,2] if it was rotated 4 times.
- [0,1,2,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 of unique elements, return the minimum element of this array.
You must write an algorithm that runs in O(log n) time.
Example 1:
Input: nums = [3,4,5,1,2]
Output: 1
Explanation: The original array was [1,2,3,4,5] rotated 3 times.
Example 2:
Input: nums = [4,5,6,7,0,1,2]
Output: 0
Explanation: The original array was [0,1,2,4,5,6,7] and it was rotated 4 times.
Example 3:
Input: nums = [11,13,15,17]
Output: 11
Explanation: The original array was [11,13,15,17] and it was rotated 4 times.
1. Find Minimum in Rotated Sorted Array 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 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 Solution JavaScript
var findMin = function(nums) { let left = 0; let right = nums.length - 1; while (left < right) { let mid = left + Math.floor((right - left) / 2); if (nums[mid] > nums[right]) { left = mid + 1; } else { right = mid; } } return nums[left]; };
4. Find Minimum in Rotated Sorted Array Solution Python
class Solution(object): def findMin(self, nums): left = 0 right = len(nums) - 1 while left < right: mid = left + (right - left) / 2 if nums[mid] > nums[right]: left = mid + 1 else: right = mid return nums[left]