@Yezi.press
二分查找左边界
手动实现二分查找,在升序数组 a[1..n] 中查找 x 第一次出现的位置,时间复杂度 O(log n)
算法模板发布于 2026/09/07#二分#二分查找
C++11 行307 Bytes
// 若找到,返回下标(1‑based);否则返回 -1
int binarySearchLeft(int a[], int n, int x) {
if (n <= 0) return -1;
int l = 1, r = n;
while (l < r) {
int mid = (l + r) / 2;
if (a[mid] >= x) r = mid;
else l = mid + 1;
}
return (a[l] == x) ? l : -1;
}