美文网首页算法
LeetCode题解:搜索插入位置

LeetCode题解:搜索插入位置

作者: 搬码人 | 来源:发表于2022-03-07 10:11 被阅读0次

题目描述

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不在数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为O(logn)的算法。

示例

  • 示例1
    输入:nums = [1,3,5,6], target = 5
    输出:2
  • 示例2
    输入:nums = [1,3,5,6], target = 2
    输出:1

方法思路

二分查找法

利用双指针left和right,分别指向数组左边界和右边界。每次遍历都重新计算中间位置mid,当目标值小于或等于nums[mid]时,right左移到mid-1位置,否则left右移到mid+1位置。如此当出现while(left<=right)结束条件时,得到需求的位置。

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

复杂度分析

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

暴力破解

暴力破解法虽然不满足时间复杂度O(logn)的条件,但也是我们最易想到的。

class Solution {
    public int searchInsert(int[] nums, int target) {
        int n = nums.length;
        for(int i=0;i<n;i++){
            if(target<=nums[i]){
                return i;
            }
        }
        return n;
    }
}

相关文章

  • LeetCode题解:搜索插入位置

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

  • 【LeetCode通关全记录】35. 搜索插入位置

    【LeetCode通关全记录】35. 搜索插入位置 题目地址:35. 搜索插入位置[https://leetcod...

  • leetcode 搜索插入位置

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

  • Leetcode: 搜索插入位置

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

  • LeetCode:搜索插入位置

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

  • 一起学算法-35. 搜索插入位置

    一、题目 LeetCode-35. 搜索插入位置链接:https://leetcode-cn.com/proble...

  • [LeetCode]35、搜索插入位置

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

  • Leetcode 35 搜索插入位置

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

  • LeetCode 35 搜索插入位置

    还可以采用二分法

  • LeetCode - #35 搜索插入位置

    前言 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。微博:@故胤...

网友评论

    本文标题:LeetCode题解:搜索插入位置

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