2022/1/7
35. 搜索插入位置
給定一個排序數組和一個目標值,在數組中找到目標值,并返回其索引。如果目標值不存在于數組中,返回它將會被按順序插入的位置。請必須使用時間復雜度為 O(log n) 的算法。
int searchInsert(int* nums, int numsSize, int target){int low=0,high=numsSize-1;int mid;if(nums[low]>=target) //考慮目標值小于所有數return 0;while(low<=high){mid=(low+high)/2;mid=(high-low)/2+low; //防止溢出if(nums[mid]==target){return mid;}else if(nums[mid]>target){high=mid-1;}else{low=mid+1;}}if(low>=mid){ //考慮最后一步,是改變了low還是highreturn low;}else{return low+1;} }時間復雜度O(logn)
空間復雜度O(1)
總結