【LintCode】Search Insert Position 搜索插入位置

给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。
你可以假设在数组中无重复元素。

样例
[1,3,5,6],5 → 2
[1,3,5,6],2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6],0 → 0

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) {
        if(null == A) return -1;
        if(A.length == 0) return 0;
        int l = 0;
        int r = A.length - 1;
        while(l <= r) {
            int m = l + (r - l)/2;
            if(A[m] == target) {
                return m;
            } else if(A[m] < target) {
                l = m + 1;
            } else {
                r = m - 1;
            }
        }
        return l;
    }
}

你可能感兴趣的:(LintCode,java,Array,二分查找)