刷题笔记:力扣第35题-搜索插入位置 📅 发布时间:2026/7/11 23:01:27 👁️ 浏览次数: 1.这道题的解法并不难找到难的是要求时间复杂度为O(logn)。对于这个要求因为题目给定的数组为无重复元素的升序数组第一时间想到的是使用二分法通过不断夹逼找到target所对应的索引index。最开始的思路是不断的将index进行二分判断该索引对应的数组元素大小如果正好相等就直接返回索引如果大于target就将index向右二分小于target就将index向左二分。可能会出现数组中没有与target相等值的情况于是定义一个last_val变量保存上一次的数组元素值如果上次的大小关系与本次的正好相反比如上次是大于这次是小于那么就找到了应该插入的索引位置初步写出的代码如下1. int searchInsert(int* nums, int numsSize, int target) { 2. int index numsSize / 2; 3. int last_val nums[index]; 4. while (index 0 index numsSize){ 5. if (nums[index] target){ 6. return index; 7. } 8. if (nums[index] target){ 9. if (last_val target){ 10. return index 1; 11. } 12. last_val nums[index]; 13. index (index numsSize) / 2; 14. } 15. if (nums[index] target){ 16. if (last_val target){ 17. return index - 1; 18. } 19. last_val nums[index]; 20. index / 2; 21. } 22. } 23. return index; 24. }2.程序超时了。询问ai后总结出如下几点问题由于”/”只取整除部分的值可能会出现index永远不再发生变化的情况之前是3数组长度是4(34)/23索引将永远是3。区间更新错误真正的二分法应该是不断缩小搜索区间而我初步写出的代码区间并没有减小。循环条件while (index 0 index numsSize)没有明确的区间收敛逻辑。3.正确的做法应该是使用左右双指针来进行二分代码如下1. int searchInsert(int* nums, int numsSize, int target) { 2. // 1. 初始化闭区间 [left, right]覆盖整个数组 3. // left区间左边界初始为第一个元素索引 4. // right区间右边界初始为最后一个元素索引 5. int left 0, right numsSize - 1; 6. 7. // 2. 循环条件left right闭区间的核心只要区间有元素就继续 8. while (left right){ 9. // 3. 计算中点mid 10. // 等价写法int mid (left right) / 2; 11. // 更安全写法int mid left (right - left) / 2;避免溢出 12. int mid (left right) / 2; 13. 14. // 4. 找到目标值直接返回mid题目要求的索引 15. if (nums[mid] target){ 16. return mid; 17. } 18. 19. // 5. 目标值比mid大去右半区间搜索 20. // 收缩左边界left mid 1mid已经判断过排除 21. if (nums[mid] target){ 22. left mid 1; 23. } 24. 25. // 6. 目标值比mid小去左半区间搜索 26. // 收缩右边界right mid - 1mid已经判断过排除 27. if (nums[mid] target){ 28. right mid - 1; 29. } 30. } 31. 32. // 7. 循环结束left rightleft就是插入位置 33. return left; 34. }二分法通过左右双指针来不断缩小区间范围循环条件left right就是二分法的核心。4.返回值的详解如果找到目标值了就直接返回目前的mid。如果二分到了最后left一定等于mid。如果二分到最后发现最后一个mid索引对应的数组元素值仍小于target说明应该插入到该索引右边此时if里leftmid1返回left刚好。如果二分到最后发现最后一个mid索引对应的数组元素值仍大于target说明应该插入到该索引左边此时left等于mid返回left刚好。
精读《生命 3.0》:人工智能时代,人类该如何掌控未来? 精读《生命 3.0》:人工智能时代,人类该如何掌控未来?前言:为什么这是我们时代最重要的一本书?如果你曾好奇 "人工智能会取代人类吗?"" 未来的生命形态会是什么样?""我… 2026/5/17 12:18:27
电脑C盘清理指南 一、系统自带工具 Windows系统自带两款实用的清理工具,无需安装任何软件,操作简单,适合所有用户,优先推荐新手使用,安全无风险。 1. 磁盘清理(常规、手动) 打开“此电脑”,找到C盘… 2026/7/10 4:15:22
目标检测数据集 第127期-基于yolo标注格式的毛毛虫目标检测数据集(含免费分享) 目录 目标检测数据集 第127期-基于yolo标注格式的毛毛虫目标检测数据集(含免费分享) 超实用毛毛虫目标检测数据集分享,助力计算机视觉研究! 1、背景 2、数据详情 2.1 数据规模与构成 2.2 图像内容与场景 2.3 标注规范 3、应用场景 3.1 田间虫害… 2026/7/11 8:15:15
STM32F091RC与ADS122U04高精度数据采集系统设计 1. 高精度模拟信号采集系统概述在工业测量、医疗设备和科学仪器等领域,将模拟信号转换为数字信号是一项基础但至关重要的任务。ADS122U04与STM32F091RC的组合,为工程师提供了一套高性价比的精密数据采集解决方案。这套系统能够将微弱的传感器信号&#x… 2026/7/11 23:00:58
工信部定性“危害严重”:Claude Code翻车背后,所有企业都该醒了 昨天整个研发圈都炸了。 工信部网络安全威胁和漏洞信息共享平台正式发布风险提示,直接给Claude Code定了性:存在安全后门隐患,危害严重。 这不是一次普通的漏洞通报——官方以“后门”之名点名一款海外AI工具,分量有多重ÿ… 2026/7/11 23:00:58
微服务多模块打包失败问题 原因:多模块父子工程,xxx 模块没先执行 install 安装到本地 Maven 仓库,子服务模块 xxx 拉不到依赖。标准多模块解决(你是微服务多 Module 项目,首选)步骤 1:找到项目父 pom 根目录目录结构示例… 2026/7/11 23:00:58
Meta Muse图像生成模型:技术架构、平台集成与开发者机遇 在AI图像生成领域,各大科技公司都在加速布局。最近Meta推出的Muse Image模型引起了广泛关注,这款自研图像生成模型不仅技术上有突破,更重要的是它将免费集成到Instagram和WhatsApp这两个拥有数十亿用户的社交平台中。对于开发者来说ÿ… 2026/7/11 22:58:58
电子墨水屏日历字体优化:3种方案解决U8g2在ESP8266上的错位与显示问题 电子墨水屏日历字体优化:3种方案解决U8g2在ESP8266上的错位与显示问题在ESP8266驱动的电子墨水屏日历项目中,字体显示问题往往是开发者最头疼的技术瓶颈之一。当U8g2字体引擎遇上内存有限的ESP8266,文字错位、显示模糊、系统崩溃等问题接踵而… 2026/7/11 22:58:58
AI数字人技术解析:从三维建模到影视制作的完整实现路径 AI 演员 Tilly Norwood 即将"主演"首部电影《Misaligned》,这一事件标志着 AI 技术在影视行业的应用进入新阶段。虽然具体技术细节尚未完全公开,但这一案例为我们分析 AI 数字人技术的现状和未来提供了重要参考。从技术角度看,AI 演… 2026/7/11 22:56:57
5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 [特殊字符] 5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 🎬 【免费下载链接】zimuku_for_kodi Kodi 插件,用于从「字幕库」网站下载字幕 项目地址: https://gitcode.com/gh_mirrors/zi/zimuku_for_kodi 还记得那个深夜吗?你刚下载… 2026/7/11 0:00:11
工业信号干扰处理与FOD4216光耦应用实战 1. 工业环境中的信号干扰挑战在工业自动化领域,信号采集的准确性直接关系到整个控制系统的可靠性。典型的工业现场充斥着各种干扰源:大功率电机启停产生的电磁干扰、变频器工作产生的高频噪声、继电器触点火花放电,以及长距离传输引入的共模干… 2026/7/11 0:00:11
OpenHarmony 完整项目工程整合规范 + 模块化分层架构(API23+ 标准企业级结构) 摘要前面系列教程覆盖了 ArkUI 组件、路由、生命周期、本地存储、网络请求、Ability 底层全套基础能力,本篇统一梳理标准工程目录分层、模块化拆分、代码复用规范、全局工具统一管理、项目打包权限配置、常见工程报错统一解决方案,形成可直接用于课程设计… 2026/7/11 0:00:11
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/11 14:53:30
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/11 12:30:52
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/11 15:29:59