发现二分里面if表示else的那个
在升序找>=
int l = 1, r = len2;
while(l <= r){
int mid = (l + r) >> 1;
f(d2[mid] >= target){
r = mid-1;
}else{
l = mid+1;
}
}
ans = l;
此时l代表了第一个>=target的下标
找第一个>target的数就是换成if(… > …)
降序找<
int l = 1, r = len1;
while(l <= r) {
int mid = (l + r) >> 1;
if(d1[mid] >= target) {
l = mid+1;
} else {
r = mid-1;
}
}
ans = l;
此时l代表了降序中的第一个<target的数。
细节啊,区间的细节,等想好了再修改。