美文网首页
搜索插入位置

搜索插入位置

作者: Audience0 | 来源:发表于2021-02-01 20:55 被阅读0次

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

你可以假设数组中无重复元素。

示例 1:

输入: [1,3,5,6], 5
输出: 2
示例 2:

输入: [1,3,5,6], 2
输出: 1
示例 3:

输入: [1,3,5,6], 7
输出: 4
示例 4:

输入: [1,3,5,6], 0
输出: 0

思路:
搜索插入值,与查找指定数字类似,所以用二分法查找
另外,插入值下标是大于或等于查找值的,所以一定要默认index为size,并且在target小于等于nums[mid]时 给index赋值

class Solution {
    public int searchInsert(int[] nums, int target) {
        int size = nums.length;
        int l = 0;
        int r = size-1;
        int index = size;
        while(l<=r){
            int mid = (l+r) >> 1;
            if(target <= nums[mid]){
                r = mid -1;
                index=mid;
            } else{
                l = mid +1;
            }

        }
    return index;
    }
}

复杂度分析

时间复杂度:O(log n)O(logn),其中 nn 为数组的长度。二分查找所需的时间复杂度为 O(log n)O(logn)。
空间复杂度:O(1)O(1)。我们只需要常数空间存放若干变量。

偷学至 力扣(LeetCode)

相关文章

  • 搜索插入位置

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

  • 搜索插入位置

    题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按...

  • 搜索插入位置

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

  • 搜索插入位置

  • 搜索插入位置

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

  • 搜索插入位置

    for i in range(len(nums)): if target <= nums[i]: ...

  • 搜索插入位置

    题目需求 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按...

  • 搜索插入位置

    给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。 你可以...

  • 搜索插入位置

    LeetCode第35题 题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存...

  • 搜索插入位置

    题目 难度级别:简单 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返...

网友评论

      本文标题:搜索插入位置

      本文链接:https://www.haomeiwen.com/subject/dfmstltx.html