/*这里是二分搜索的变种。注意target数字可能在对数组进行二分时,
不在任何一个子数组,这时直接返回应该插入数组的位置。*/
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int left(0), right(nums.size()-1);
while(left <= right){
int middle = (left+right)/2;
if(nums[middle] == target) return middle;
else if(nums[middle] > target){
if(middle == 0) return 0;
else if(nums[middle-1] < target) return middle;
else right = middle-1;
}
else{
if(middle == nums.size()-1) return nums.size();
else if(nums[middle+1] > target) return middle+1;
else left = middle+1;
}
}
}
};LeetCode之Search Insert Position
最新推荐文章于 2019-05-31 00:39:10 发布
本文介绍了一种二分搜索的变种实现方法,当目标值不在数组中时,能够返回其应该插入的位置。该算法适用于已排序的整数数组,并通过调整中间索引来高效定位目标值或插入位置。
132

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



