搜索应该被插入的位置。
直接暴力很简单就不说了。
除了暴力法,在排序数组中查找值还可以用的一种方法是二分法,时间复杂度是O(logn)。
使lo往后移动,不错过第一个nums[mid]与target相等的情况。
public int searchInsert(int[] nums, int target){
int lo = 0;
int hi = nums.length;
if (target>nums[hi-1])
return nums.length;
while (lo<hi) {
int mid = (lo + hi) / 2;
if (target > nums[mid]) {
lo = mid + 1; // lo往右移
}else {
hi = mid;
}
}
return lo;
}