力扣面试150题--搜索插入位置

Day 81

题目描述

思路

经典的二分查找,特殊处理一下插入在第一个元素或者最后一个元素

java 复制代码
class Solution {
    public int searchInsert(int[] nums, int target) {
            if(target<=nums[0]){
                return 0;
            }
            if(target>nums[nums.length-1]){
                return nums.length;
            }
            int beg=0;
            int end=nums.length-1;
            int mid;
            while(beg<end){
                mid=(end+beg)/2;
                if(beg+1==end){
                    return end;
                }
                if(target==nums[mid]){
                    return mid;
                }
                else if(target<nums[mid]){
                    beg=beg;
                    end=mid;
                }
                else{
                    beg=mid;
                    end=end;
                }
            }
            return end;
    }
}