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?