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

leetcode_35.搜索插入位置

题目如下:
在这里插入图片描述
首先这个题暴力也可以过,但是题目要求我们使用O(log n)时间复杂度的算法,所以我们这道题还是试用二分的方式来解决,依旧是往期的两个模板,这里我们都写一下
左闭右开

class Solution {
public:int searchInsert(vector<int>& nums, int target) {int l=0,r=nums.size();while(l<r){int mid=(l+r)>>1;if(nums[mid]>target){r=mid;}else if(nums[mid]<target){l=mid+1;}else return mid;}return l;}
};

左闭右闭

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

最后附上暴力做法:

class Solution {
public:int searchInsert(vector<int>& nums, int target) {for(int i=0;i<nums.size();i++){if(nums[i]>=target) return i;}return nums.size();}
};

暴力的代码我来说一下,主要就是遍历整个数组,通过寻找第一个大于等于target的值,等于的话就是找到了这个元素,直接返回其下标,大于的话等于就是这个元素必须插入到这里。最后循环结束,没有找到的话,表明target大于数组中的所有元素,返回这个数组最后一个位置就Ok了

http://www.xdnf.cn/news/971245.html

相关文章:

  • 如何查看电脑系统的初始安装时间?
  • 龙虎榜——20250610
  • 【沉浸式求职学习day53】【Spring】
  • MFC 第一章概述
  • 2025 Java 面试大全
  • 39.第二阶段x64游戏实战-封包-分析计数器
  • gro文件和top文件介绍,以及如何合并两个gro文件或两个top文件
  • 【论文解读】ReSearch:让LLM自主学习搜索
  • Qt进阶开发:动画框架的介绍和使用
  • Zynq multi boot及网口远程更新开发
  • Android Studio 问题:Android Studio 一直开在 Updating indexes
  • 【运维】【期末实训】网站简易搭建模拟
  • 核心机制:面向字节流
  • C++:std::is_convertible
  • <7>-MySQL内置函数
  • Python训练营-Day27-函数专题2:装饰器
  • Java如何权衡是使用无序的数组还是有序的数组
  • copilot基于 DeepSeek-R1 思路构建 VLA 自动驾驶强化学习系统
  • 华为云Flexus+DeepSeek征文|体验华为云ModelArts快速搭建Dify-LLM应用开发平台并创建联网大模型
  • QMC5883L的驱动
  • iview组件库:自定义方法去控制Tree树形数据的根节点与叶节点的关联性
  • Android Studio jetpack compose折叠日历日期选择器【折叠日历】
  • IOC和AOP
  • vue实现气泡词云图
  • FastJson的反序列化问题入门
  • Qt使用ODBC连接MySQL数据库
  • R7-1 显示Pascal三角形
  • 【代码模板】从huggingface加载tokenizer和模型,进行推理
  • idea64.exe.vmoptions配置
  • IDEA中配置HTML和Thymeleaf热部署的步骤