35. 搜尋插入位置
阿新 • • 發佈:2021-02-18
技術標籤:leetcode
使用二分法
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int low=0,high=nums.size()-1,middle;
while(low<=high)//當left==right,區間[left, right]依然有效
{
middle=(low+high)/2;
if(target<nums[middle])
{
high=middle-1;
}
else if(target>nums[middle])
{
low=middle+1;
}
else
{
return middle;// 陣列中找到目標值的情況,直接返回下標
}
}
return high+1;
}
};
時間複雜度:O(logn)
空間複雜度:O(1)