Leetcode35. Search Insert Position

这题比较简单,应该可以直接想到改良二分查找,跳过暴力解法了。

class Solution {
    public int searchInsert(int[] nums, int target) {
        int s = 0,e = nums.length-1;
        int m = -1;
        while(s<=e){
            m = (s+e)/2;
            if(target==nums[m]){
                return m;
            }
            else if(target<nums[m]){
                e=m-1;
            }
            else{
                s=m+1;
            }
        }
        if(nums[m]>target) return m;
        else return m+1;
    }
}

唯一值得说的:

最后,如果while循环没有返回,则没有找到,那么最终m的位置要么比target大要么小,但都会是最接近的那个。所以只需做个大小判断,然后输出对应的index即可。

2-3ms 100%-68.91%.可以了。

posted @ 2018-12-26 17:59  大胖子球花  阅读(72)  评论(0)    收藏  举报