思想,在跳出递归时,判断当前数字与target,来选择返回L还是R。
/*
* @lc app=leetcode id=35 lang=cpp
*
* [35] Search Insert Position
*/
// @lc code=start
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
return bisearch(nums,target,0,nums.size());
}
int bisearch(vector<int>& nums, int target, int L,int R){
if(L+1>=R){
if(nums[L] >= target) return L;
return R;
}
int mid = (L+R)/2;
if(nums[mid] > target){
return bisearch(nums, target, L, mid);
}
if(nums[mid] < target){
return bisearch(nums, target, mid, R);
}
return mid;
}
};
// @lc code=end
本文深入探讨了二分查找算法的实现,通过递归方式在有序数组中搜索目标值的位置,详细介绍了算法流程及边界条件处理,是理解二分查找核心原理的优质资源。
435

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



