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

力扣-数组-35 搜索插入位置

解析

时间复杂度要求,所以使用二分的思想,漏掉了很多问题,这里记录

  1. 在left-right=1时,已经找到了插入位置,但是没有赋值,然后break,所以导致一直死循环。
    if(right - left == 1){result = right;break;
    }

  2. 在和最右侧数比较时,漏掉了相等时就直接找到,所以在数组是[1,3],target=1时,应该返回下标0
    if(target <= nums[left]){result = left;break;
    }               

  3. 长度为0时,不进入循环了,所以循环条件是left <= right。

代码

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

http://www.lryc.cn/news/517772.html

相关文章:

  • List ---- 模拟实现LIST功能的发现
  • HashMap和HashTable区别问题
  • mysql -> 达梦数据迁移(mbp大小写问题兼容)
  • leetcode热门100题1-4
  • 作业:IO:day2
  • UVM: TLM机制
  • flink的EventTime和Watermark
  • arcgis的合并、相交、融合、裁剪、联合、标识操作的区别和使用
  • 【Leetcode 热题 100】20. 有效的括号
  • 比较procfs 、 sysctl和Netlink
  • Leetcode 3413. Maximum Coins From K Consecutive Bags
  • MakeFile使用指南
  • 矩阵碰一碰发视频的视频剪辑功能源码搭建,支持OEM
  • VB.NET CRC32 校验
  • 冒充者综合征上线了
  • 【大模型】百度千帆大模型对接LangChain使用详解
  • Redis相关面试
  • 使用强化学习训练神经网络玩俄罗斯方块
  • java中的日期处理:只显示日期,不显示时间的两种处理方式
  • 腾讯云AI代码助手编程挑战赛——贪吃蛇小游戏
  • 水水水水水
  • Spring整合SpringMVC
  • 【Rust自学】10.4. trait Pt.2:trait作为参数和返回类型、trait bound
  • 嵌入式系统 (2.嵌入式硬件系统基础)
  • Linux 下 Vim 环境安装踩坑问题汇总及解决方法(重置版)
  • OpenAI 故障复盘 - 阿里云容器服务与可观测产品如何保障大规模 K8s 集群稳定性
  • 安卓触摸对焦
  • jupyter出现“.ipynb appears to have died. It will restart automatically.”解决方法
  • 20250108-实验+神经网络
  • 【权限管理】CAS(Central Authentication Service)