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 SolutionsPython 3 • JavaScript • TypeScript • Java • C++
Switch tabs or choose Alldef 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