当前位置: 首页 > news >正文

专题三搜索插入位置

1.题目

题目分析:

 给一个目标值,然后要在排序的整数数组中,找到跟目标值一样的,如果没有就把这个值插入进去,然后返回插入后的下标。

2.算法原理

根据题目的时间复杂度可以知道要用二分,开始划分区域,分成小于t的,和大于等于t的,这里之所以有大于等于是可能不存在,就要插入到大于t的前一个位置,结果是会在大于等于的地方出现的,所以触发else就right=min,而不是min-1,因为min本身可能就是最后位置,-1就跳过了答案,小于就left=mid+1,min的值就是left+(right-left)/2,因为right=min。最后还需要注意,有的情况是出了边界,而二分最多到最后一个位置,所以需要判断是否相等跟t,不相等就说明在下一个位置。

3.代码实现

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int left=0,right=nums.size()-1;
        while(left<right)
        {
            int min=left+(right-left)/2;
            if(nums[min]<target) left=min+1;
            else right=min;
        }
        if(nums[right]<target) return right+1;
        return right;
    }
};

http://www.dtcms.com/a/69366.html

相关文章:

  • 新矩阵(信息学奥赛一本通-2041)
  • 文生图技术的演进、挑战与未来:一场重构人类创造力的革命
  • Qt启动新窗口
  • Android Dagger2 框架依赖图构建模块深度剖析(三)
  • 【react】react中的<></>和React Fragment的用法及区别详解
  • 使用DeepSeek AI开发智能问答网页应用
  • 分布式架构下的RPC解决方案
  • TCP 采用三次握手建立连接的原因
  • linux系统安装和激活conda
  • 【2025.3.13】记一次双系统笔记本加装固态硬盘记录 linux扩容 linux更换/home和/opt所在硬盘 windows无法调整亮度
  • ssm:商业异常处理流程
  • 日志Python安全之SSTI——Flask/Jinja2
  • 双3060、Ubuntu22.04、cuda12.8安装deepseek 32b-Q8
  • 面向对象Demo02
  • Python 实现大文件的高并发下载
  • 躲藏博弈中的策略优化:整合历史数据、概率论与博弈论
  • docker pull 镜像问题
  • RGV调度(四)--排队算法
  • 智能电话机器人的技术原理是什么?AI语音机器人评判标准是什么?
  • 数学建模之数学模型-3:动态规划
  • Liunx启动kafka并解决kafka时不时挂掉的问题
  • 用Python实现持续集成与部署(CI/CD)流程:自动化测试、构建与部署
  • 《AI浪潮中的璀璨新星:Meta Llama、Ollama与DeepSeek的深度剖析》:此文为AI自动生成
  • 基于yolov8+streamlit实现目标检测系统带漂亮登录界面
  • 第三周日志-web(2)
  • 使用AOP + Prometheus + node-exporter + grafana 实现Java系统的接口监控(实操)
  • 蓝桥杯好题推荐---子集
  • 05 | 使用 Cobra 包来构建你的 Go 项目
  • 11a-PPDU
  • 未来社交媒体的发展趋势:TikTok 与虚拟现实的结合