35. 搜索插入位置

35. 搜索插入位置

  • 题目-简单难度
  • [1. 直接while-loop遍历](#1. 直接while-loop遍历)
  • [2. 二分法](#2. 二分法)

题目-简单难度

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

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

示例 1:

输入: nums = [1,3,5,6], target = 5

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

输出: 1

示例 3:

输入: nums = [1,3,5,6], target = 7

输出: 4

提示:

  • 1 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • nums 为 无重复元素 的 升序 排列数组
  • -104 <= target <= 104

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/summary-ranges
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

1. 直接while-loop遍历

python 复制代码
class Solution(object):
    def searchInsert(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        # 设置索引
        i = 0
        # 遍历列表
        while i < len(nums):
            # 如果发现
            if nums[i] >= target:
                return i
            i+=1
        return len(nums)

2. 二分法

python 复制代码
class Solution(object):
    def searchInsert(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        # 设置左右指针
        l,r = 0, len(nums)-1
        # 当左右指针间仍然有元素未遍历
        while l <= r:
            # 设置中间元素位置
            m = l + (r-l)//2
            # 判断中间元素是否比要找到元素大
            # 大或者相等的情况 设置右侧边界为m-1
            if nums[m] >= target:
                r = m - 1
            # 小于的情况 设置左侧边界为m+1
            else:
                l = m + 1
        # 返回左指针元素
        return l
相关推荐
Albert Edison8 分钟前
Python入门基础
开发语言·python
时光旅人01号16 分钟前
I-CON: A Unifying Framework for Representation Learning
python
T0uken20 分钟前
【Python】Matplotlib:立体永生花绘制
开发语言·python·matplotlib
雾削木23 分钟前
mAh 与 Wh:电量单位的深度解析
开发语言·c++·单片机·嵌入式硬件·算法·电脑
__lost25 分钟前
小球在摆线上下落的物理过程MATLAB代码
开发语言·算法·matlab
豌豆花下猫31 分钟前
Python 3.14 t-string 要来了,它与 f-string 有何不同?
后端·python·ai
吴佳浩1 小时前
Python入门指南(四)-项目初始化
人工智能·后端·python
万事可爱^1 小时前
TensorFlow 安装全攻略
人工智能·python·深度学习·机器学习·tensorflow·tensorflow安装
hyhrosewind2 小时前
Python函数基础:说明文档(多行注释),函数嵌套调用,变量作用域(局部,全局,global关键字),综合案例
python·变量作用域·函数说明文档(多行注释)·函数嵌套调用·局部变量和全局变量·函数内修改全局变量·global关键字
mit6.8242 小时前
[Lc_week] 447 | 155 | Q1 | hash | pair {}调用
算法·leetcode·哈希算法·散列表