每次思考都是一次进步
1、在有序数组中寻找某个元素,且要求时间复杂度为O(logn),显然用二分去做。在最后需要判断一下l是否为thesize-1,且nums[l]是否小于target,如果小于,则说明target需要插入到它后面,那么得返回l+1,否则返回l即可。
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int thesize=nums.size();
int l=0,r=thesize-1,mid;
while(l<r)
{
mid=l+(r-l)/2;
if(nums[mid]>target) r=mid;
else if(nums[mid]<target) l=mid+1;
else
{
return mid;
}
}
if(nums[l]<target) return l+1;
return l;
}
};