给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。
你可以假设在数组中无重复元素。【二分搜索法】
如果找不到该数,high是比该数小的那个数的下标,而low是比该数大的那个数的下标。
public class Solution {
/**
* param A : an integer sorted array
* param target : an integer to be inserted
* return : an integer
*/
public int searchInsert(int[] A, int target) {
// write your code here
if(A.length==0 || A==null)
return 0;
int low = 0;
int high = A.length-1;
while(low<=high){//注意等号
int mid = (low+high)/2;
if(A[mid]==target)
return mid;
else if(A[mid]<target){
low = mid + 1;
}else{
high = mid - 1;
}
}
return low;//注意返回
}
}