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

来源:互联网 发布:java 间隔1秒执行一次 编辑:程序博客网 时间:2024/05/20 04:48

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

样例
[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;    }}
0 0