解题思路:
1.获取信息:
给定一个升序排列的数组和一个整数,要求查找该整数应该在数组中插入的位置
限制条件是,要求时间复杂度为O(log N)
2.分析题目:
时间复杂度要求O(log N),那么就使用二分查找法,这道题比较简单就不过多阐述如何使用了
3.示例查验:借着示例检查一下自己的思路能否实现
4.尝试编写代码:
(1)二分查找法
比较简单,就直接给出代码了
cpp
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int begin=0,end=nums.size()-1;
while(begin<=end){
int mid=(begin+end)/2;
if(nums[mid]==target)end=mid-1;
else if(nums[mid]<target)begin=mid+1;
else if(nums[mid]>target)end=mid-1;
}
return begin;
}
};