- 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 5 输出: 2 示例 2:
输入: [1,3,5,6], 2 输出: 1 示例 3:
输入: [1,3,5,6], 7 输出: 4 示例 4:
输入: [1,3,5,6], 0 输出: 0 通过次数334,698提交次数711,503
int searchInsert(int* nums, int numsSize, int target){
//第一种方法 采用顺序查找
/*
for(int i =0;i<numsSize;i++)
{
if(nums[i]>=target)
{
return i;
}
}
return numsSize;
*/
-----------------------
采用二分法
int low =0;
int high =numsSize-1;
if(nums[0]>=target) return 0;
while(high-low>1)
{
int mid =(high+low)/2;
if(nums[mid]==target) return mid;
if(nums[mid]>target) high=mid;
else low =mid;
}
if(nums[low]>= target) return low;
if(nums[high]<target) return high+1;
else return high;
}