Top 150 InterviewEasy

Find Minimum In Rotated Sorted Array

Detailed guide and Python implementation for the 'Find Minimum In Rotated Sorted Array' problem.

Problem Statement

Easy

Suppose an array of length n sorted in ascending order is rotated between 1 and n times. For example, the array [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2] if it was rotated 4 times.

Notice that rotating an array [a[0], a[1], ..., a[n-1]] 1 time results in [a[n-1], a[0], a[1], ..., 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.

Write a function findMin(nums: List[int]) -> int.

Constraints
  • n == len(nums)
  • 1 <= n <= 5000
  • -5000 <= nums[i] <= 5000
  • All integers in nums are unique
  • nums is sorted and rotated between 1 and n times

Examples

Example 1
Input
nums = [3, 4, 5, 1, 2]
Output
1
Explanation

The original array was [1,2,3,4,5] rotated 3 times. The minimum is 1.

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] rotated 4 times. The minimum is 0.

Example 3
Input
nums = [11, 13, 15, 17]
Output
11
Explanation

Array is not rotated (or rotated n times). The minimum is the first element.

Need a Hint?
Consider using Binary Search-specific data structures like sets or heaps.
Edge Cases to Watch
  • Empty input structures
  • Single element inputs
  • Large numerical bounds

Ready to Solve?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Open in Editor

Recommended Python Resources

Expand your knowledge with related interactive tutorials, cheat sheets, and code comparisons.