[leetCode]35. 搜索插入位置

在这里插入图片描述

解法 二分查找

因为这题输入的是有序数组,需要查找target的插入位置,因此马上可以想到二分查找算法。
在这里插入图片描述
如上图所示如果查找到了target则返回mid,如果为查询到则返回lo或者hi+1。代码如下:

class Solution {
    public int searchInsert(int[] nums, int target) {
        return rank(nums,target);
    }

    public int rank(int[] nums,int target){
        int lo = 0;
        int hi = nums.length - 1;
        while(lo <= hi){
            int mid = lo + (hi - lo)/2;
            if(target > nums[mid]){
                lo = mid + 1;
            }else if(target < nums[mid]){
                hi = mid - 1;
            }else{
                return mid;
            }
        }
        return lo;//或者返回hi+1
    }
}
posted @ 2020-06-23 08:56  消灭猕猴桃  阅读(55)  评论(0编辑  收藏  举报