一、题目
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
示例 1:
输入: nums = [1,3,5,6], target = 5
输出: 2
示例 2:
输入: nums = [1,3,5,6], target = 2
输出: 1
二、解题步骤
1、设置left、right、mid,分别代表数组的起始位置、结束位置、以及中间位置
2、比较目标值与nums[mid]的大小
情况一:nums[mid]>=target;
right=mid-1;
情况二:nums[mid]<target;
left=mid+1;
案例分析:
三、代码示例
代码如下(示例):
int searchInsert(int* nums, int numsSize, int target){
int left=0,right=numsSize-1;
while(left<=right){
int mid=left+(right-left)/2;
if(nums[mid]>=target){
right = mid - 1;
} else {
left = mid + 1;
}
}
return left;
}