若数组 a 已按升序排列,则下面代码可以正确实现“在a中查找第一个大于等于x的元素的位置”。
int lowerBound(vector<int>& a, int x){
int l = 0, r = a.size();
while (l < r) {
int mid = (l + r) / 2;
if (a[mid] >= x) r = mid;
else l = mid + 1;
}
return l;
}
正确
错误