LeetCode 35. 搜索插入位置

110 阅读1分钟

比二分查找多了一步:如果没有找到,返回可以插入的位置

基本框架和二分查找类似,之后就要多一步操作.当全部不匹配,即最后一个不相等时,返回插入位置,那么我们要记录最后一个元素的位置.

当小于该元素时,取代它的位置插入,当大于时,插入该元素的后面一个位置.

image.png

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

image.png