正常的二分查找,除了两个特殊的条件,即,如果数组中没有 target
,小于最小值或者大于最大值,则返回插入的位置。
3、正文
能找到:
找不到:
4、代码
代码语言:javascript复制class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
if(nums.empty()||nums.back()<target) return nums.size();
int left=0;
int right=nums.size()-1;
while(left<right){
int mid=left right>>1;
if(nums[mid]>=target){
right=mid;
}
else{
left=mid 1;
}
}
return left;
}
};