InterviewHubPRO
Section Overview
Q46

Question 46 of 100

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

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

Binary Search on Sorted Boundaries.

In Simple Words: Standard binary search template: mid = l + Math.floor((r - l) / 2). For lower bound (first element $\ge target$), keep moving left r = mid - 1 when nums[mid] >= target.

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