[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
    }
}
原文地址:https://www.cnblogs.com/PythonFCG/p/13860025.html