class Solution
{
public:
int searchInsert(vector<int>& nums, int target)
{
int len = nums.size();
int low = 0;
int high = len - 1;
int tmp = len;
while (low <= high)
{
int mid = ((high - low)>>1) + low;
if (target <= nums[mid])
{
tmp = mid;
high = mid - 1;
}
else
{
low = mid + 1;
}
}
return tmp;
}
};
int main()
{
Solution A;
vector<int> vec{ 1,3,5,6 };
cout << A.searchInsert(std::ref(vec), 2) << endl;
return 0;
}
时间复杂度:O(logn),其中 n 为数组的长度,二分查找所需的时间复杂度为 O(logn)
空间复杂度:O(1),我们只需要常数空间存放若干变量