美文网首页
Leetcode: 搜索插入位置

Leetcode: 搜索插入位置

作者: 星星xingxing1998 | 来源:发表于2020-02-01 20:35 被阅读0次

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

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

个人解法(java):

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

较优解法(来自leetcode官网):
降低时间复杂度
标签:二分查找
如果该题目暴力解决的话需要O(n) 的时间复杂度,但是如果二分的话则可以降低到 O(logn) 的时间复杂度
整体思路和普通的二分查找几乎没有区别,先设定左侧下标 left 和右侧下标 right,再计算中间下标 mid
每次根据 nums[mid] 和 target 之间的大小进行判断,相等则直接返回下标,nums[mid] < target 则 left 右移,nums[mid] > target 则 right 左移
查找结束如果没有相等值则返回 left,该值为插入位置
时间复杂度:O(logn)
二分查找的思路不难理解,但是边界条件容易出错,比如 循环结束条件中 left 和 right 的关系,更新 left 和 right 位置时要不要加 1 减 1

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

相关文章

  • 【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题解:搜索插入位置

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

  • LeetCode - #35 搜索插入位置

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

网友评论

      本文标题:Leetcode: 搜索插入位置

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