给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。
p.s. 用移位操作符时一定要打括号,不然优先级太后面了,会导致死循环;
int mid = l+((r-l)>>1);
刚开始我一直没想通,把我害惨了;
还出现:
Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended;
class Solution {
public int searchInsert(int[] nums, int target) {
int l = 0;
int r = nums.length - 1;
while(l<=r){
int mid = l+((r-l)>>1);
if(target<=nums[mid]){
r = mid-1;
}else{
l=mid+1;
}
}
return l;
}
}