Given a sorted array of distinct integers and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.
You must write an algorithm with O(log n) runtime complexity.
Example 1:
Input: nums = [1,3,5,6], target = 5 Output: 2
Example 2:
Input: nums = [1,3,5,6], target = 2 Output: 1
Example 3:
Input: nums = [1,3,5,6], target = 7 Output: 4
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int low = 0, high = nums.size()-1;
while (low <= high){
int mid = (low+high)/2;
if (target == nums[mid]) return mid;
else if (target > nums[mid]) low = mid+1;
else high = mid-1;
}
return low;
}
};
该篇博客详细介绍了如何使用二分查找算法在有序整数数组中寻找目标值,并在找不到时返回插入位置。提供的C++代码示例展示了搜索插入点的高效解决方案,其时间复杂度为O(logn)。此算法适用于数据检索和排序优化场景。
1077

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



