首页 > 编程语言 >每日算法之搜索插入位置

每日算法之搜索插入位置

时间:2023-01-14 14:57:33浏览次数:46  
标签:int 位置 mid 插入 算法 搜索 目标值 left

35. 搜索插入位置

题目描述

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。
如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

方法 二分查找

如果存在目标值,直接返回

否则一直搜索,最后返回leftindex。

如果最后mid大于目标值,right为mid-1,此时插入位置为left;
如果mid小于目标值,left为mid+1,此时插入位置为left。

代码

package easy.搜索插入位置35;

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

标签:int,位置,mid,插入,算法,搜索,目标值,left
From: https://www.cnblogs.com/loongnuts/p/17051842.html

相关文章