5/30/2014

11. Search Insert Position

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 条评论:

  1. 1. Binary search, O(log n) time.
    2. Two pointers: i=0; j=length-1 ---> mid=(i+j)/2.

    回复删除