Note:
这次 r 指针直接定义成nums.size(),因为有可能会插入到最后一个位置上去,而while循环又是l < r,所以mid不可能会取到nums.size(),那么也就不会出现数组下标越界的情况
代码如下:
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int l = 0, r = nums.size();
while(l < r){
int mid = l + r >> 1;
if(nums[mid] >= target) r = mid;
else l = mid + 1;
}
return r;
}
};