数据结构(四十三)
学习数据结构与算法过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。
—— 搜索插入位置 ——
1.题目描述
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。
示例:
示例1:
输入:
nums = [1,3,5,6], target = 5"
输出:
2
示例 2:
输入:
nums = [1,3,5,6], target = 2
输出:
1
2.代码
c
int searchInsert(int* nums, int numsSize, int target){
if(numsSize <=0)
return 0;
int left = 0,right = numsSize -1,mid;
while(left <= right){
mid = (left + right)>>1;
if(nums[mid] <target)
left = mid + 1;
else if(nums[mid] > target)
right = mid - 1;
else
return mid;
}
if(left > mid)
return mid + 1;
return mid;
}