Iterative
标准的二分搜索算法,在结束的时候,如果没有找到target:那么left指向小于target的最大的数,right指向大于target的最小的数。
int searchInsert(vector<int>& nums, int target) {
if(nums.empty()) return 0;
int l=0,r=nums.size()-1,m=0;
while(l<=r){
m=(l+r)/2;
if(target==nums[m])
return m;
else if(target>nums[m])
l=m+1;
else
r=m-1;
}
return l;
}
Last updated
Was this helpful?