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
相关推荐
wsj66888几秒前
04 | Prompt Engineering:提示词工程
python
郝学胜-神的一滴6 分钟前
干货版《算法导论》04:渐近复杂度与序列接口实战
java·开发语言·数据结构·c++·python·算法
zzzsde6 分钟前
【Linux】信号处理(3)信号处理&&valatile关键字
linux·运维·服务器·开发语言·算法
神明9316 分钟前
CSS 背景图滑动切换:纯 CSS 实现右进左出轮播效果
jvm·数据库·python
wang3zc11 分钟前
CSS如何让最后一行项目左对齐_利用flex布局配合伪元素空项填充
jvm·数据库·python
2303_8212873812 分钟前
如何用 Chrome 的 Rendering 面板监控页面的重排频率
jvm·数据库·python
_Rookie._14 分钟前
部署python后端,以及Dockerfile 的 RUN CMD ENTRYPOINT字段
开发语言·python
m0_6315298217 分钟前
C#怎么解析XML文件 C#如何用XmlDocument和LINQ to XML读写XML数据【基础】
jvm·数据库·python
dr_yingli18 分钟前
Pictologics提取图像特征(类似pyradiomics影像组学包)的详细使用指南
python
洛水水19 分钟前
【力扣100题】47.最长递增子序列
算法·leetcode·职场和发展