思想,在跳出递归时,判断当前数字与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