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)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
