#14043. [GESP202609 五级 C++] 第 21 题

[GESP202609 五级 C++] 第 21 题

若数组 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;
}

{{ select(1) }}

  • 正确
  • 错误