class Solution {
public:
//二分查找
int searchInsert(vector<int>& nums, int target) {
int begin = 0;
int end = nums.size() -1;
while(begin< end){
int mid = (begin + end)/2;
//如果mid对应值即为目标值,则返回插入位置为mid
if(nums[mid] == target){
return mid ;
}
//如果mid对应值小于target,则在后半部分查找
else if(nums[mid] < target){
begin = mid + 1;
}
//否则,在前半部分查找
else end = mid - 1;
}
//当begin == end时,只需比较begin处与目标数的大小插入数即可
if(target > nums[begin]) return begin+1;
else return begin;
}
};
LeetCode刷题_c++版-35搜索插入位置
猜你喜欢
转载自blog.csdn.net/weixin_44343355/article/details/129002708
今日推荐
周排行