public class Solution {
public int searchInsert(int[] A, int target) {
if (A.length==0 || A[0]>target) return 0;
int i=0;
int j=A.length-1;
while(i<j) {
int mid = (i+j)/2;
if (A[mid]==target) return mid;
else if (target<A[mid]) j = mid-1;
else i = mid+1;
}
if (target<=A[i]) return i;
else return i+1;
}
}
1. Binary search, O(log n) time.
回复删除2. Two pointers: i=0; j=length-1 ---> mid=(i+j)/2.