单选题

给定一个长度为 n 的有序数组 nums ,其中可能包含重复元素。下面的函数返回数组中某个元素 target 的左边界,若数组中不包含该元素,则返回 −1 。例如在数组 nums = [5,7,7,8,8,10] 中查找 target=8 ,函数返回 8 在数组中的左边界的索引为 3。则横线上应填写的代码为(    )。

int getLeftBoundary(vector<int>& nums, int target) {

      int left = 0;

      int right = nums.size() - 1;

      while (left < right) {

            int middle = left + ((right - left) / 2);

            if (target <= nums[middle])

                  ________________________________ // 在此处填入代码

            else

                  left = middle+1;

      }

      return nums[left]==target?left:-1;

}


A

right = middle - 1;

B

right = middle;

C

right = middle + 1;

D

以上都不对

赣ICP备20007335号-2