二分法在数组中,找>=某个数最左侧的位置
前提:数组有序 例: 1 2 2 2 2 3 4 5 6 7 8 大于等于 2 最左的位置为1
int BS_NearlyLeft(int arr[], int len, int val) { int ans = len - 1; //存储最优情况 int L = 0; int R = len - 1; int mid = 0; while(L <= R) { mid = L + ((R - L) >> 1); if(arr[mid] >= val) { //大于等于再往左找 ans = ans > mid ? mid : ans; R = mid - 1; } if(arr[mid] < val) { //小于往右找 L = mid + 1; } } return ans; }