若数组 a 已按升序排列,下面函数能够返回最后一个小于等于 x 的元素下标;如果不存在,则返回
-1。
int findLastLE(const vector<int> &a, int x) { int l = 0, r = (int)a.size() - 1; int ans = -1; while (l <= r) { int mid = l + (r - l) / 2; if (a[mid] <= x) { ans = mid; l = mid + 1; } else { r = mid - 1; } } return ans;}