做一个网站大概多少钱,成品ppt的网站免费直播有哪些,西安东郊网站建设,收录查询站长工具题目描述#xff1a;
给定一个排序数组和一个目标值#xff0c;在数组中找到目标值#xff0c;并返回其索引。如果目标值不存在于数组中#xff0c;返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。 示例 1:
输入: nums [1,3,5,6], target 5…题目描述
给定一个排序数组和一个目标值在数组中找到目标值并返回其索引。如果目标值不存在于数组中返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。 示例 1:
输入: nums [1,3,5,6], target 5
输出: 2示例 2:
输入: nums [1,3,5,6], target 2
输出: 1示例 3:
输入: nums [1,3,5,6], target 7
输出: 4提示:
1 nums.length 104-104 nums[i] 104nums 为 无重复元素 的 升序 排列数组-104 target 104
思路及题解
找到第一个大于等于target的数的下标即可如果没有大于等于target的数就插入数组尾部即返回numsSize。用二分法查找。
代码
int searchInsert(int* nums, int numsSize, int target){int lo0;int hinumsSize-1;int mid;int ansnumsSize;// if(nums[0]target) return 0;// if(targetnums[hi]) return numsSize;//找第一个大于等于target的数while(lohi){mid(lohi)/2;if(targetnums[mid]){ansmid;himid-1;}else{lomid1;}}return ans;
}