美文网首页程序员
力扣 35 搜索插入位置

力扣 35 搜索插入位置

作者: zhaojinhui | 来源:发表于2020-07-21 12:04 被阅读0次

题意:给定一个有序数组和一个target数,找出target在数组中应该插入的位置

思路:二分查找,s开始index,m中间index,e结尾index

  1. 如果中间的数是target返回中间的index
  2. 如果中间的数小于target,更新s为m+1
  3. 如果中间的数大于target,更新e为m,因为如果数不存在,返回的index是较大的index,比如target是2,数组是0,3,返回的是1
  4. 如果s==e退出循环,返回s

思想:二分查找

复杂度:时间O(lgn),空间O(1)

class Solution {
    public int searchInsert(int[] nums, int target) {
        int s = 0;
        int e = nums.length - 1;
        // 比所有的数都大,返回e+1
        if(target > nums[e])
            return e+1;
        // 二分查找
        while(s<e) {
            int m = s+(e-s)/2;
            if(nums[m] == target)
                return m;
            if(nums[m]<target) {
                s = m + 1;
            } else {
                e = m;
            }
        }
        return s;
    }
}

相关文章

  • 力扣 35 搜索插入位置

    题意:给定一个有序数组和一个target数,找出target在数组中应该插入的位置 思路:二分查找,s开始inde...

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

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

  • 35 搜索插入位置

    文|Seraph 01 | 问题 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在...

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

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

  • 35. 搜索插入位置

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

  • 35. 搜索插入位置

    自己解法 有序数组就是二分查找的依据,二分查找完了以后,能找到target直接返回,不能找到的话,就是left和r...

  • Leecode[35] 搜索插入位置

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

  • Leetcode 35 搜索插入位置

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

  • 35. 搜索插入位置

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

  • #35_搜索插入位置

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

网友评论

    本文标题:力扣 35 搜索插入位置

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