InterviewHubPRO
Section Overview
Q49

Question 49 of 100

Part 6: Binary Search & Search on Answer (46 - 52)

49%
DSA Patterns (Multi-Lang)•Part 6: Binary Search & Search on Answer (46 - 52)

Find Minimum in Rotated Sorted Array.

In Simple Words: Compare nums[mid] against nums[r]. If nums[mid] > nums[r], minimum must be in right half: l = mid + 1. Else minimum is at or left of mid: r = mid. Loop terminates with nums[l].

  • Time: $O(\log N)$ | Space: $O(1)$
Multi-Language Solutions
Switch tabs or choose All
def findMin(nums: list[int]) -> int:
    l, r = 0, len(nums) - 1
    while l < r:
        mid = l + (r - l) // 2
        if nums[mid] > nums[r]:
            l = mid + 1
        else:
            r = mid
    return nums[l]