给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
//定义n为数组大小
int n=nums.size();
//left为最左,right为最右
int left=0,right=n-1,ans=n;
//如果left<=right,就一直循环查找
while(left<=right){
//mid等于左右指针中间
int mid=(left+right)/2;
//如果中间指针大于等于目标值
if(nums[mid]>=target){
//将中间指针保存到ans中
ans=mid;
//右指针等于中间指针-1
right=mid-1;
}
else{
//左指针等于中间指针+1
left=mid+1;
}
}
return ans;
}
};
1万+

被折叠的 条评论
为什么被折叠?



