当前位置: 首页 > 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了

相关文章:

  • Vue 模板语法之指令语法详解
  • 如何xml序列化 和反序列化类中包含的类
  • 如何删除导出的xml中的xmlns:xsd=
  • 【无标题新手学习期权从买入看涨期权开始】
  • 分析VSS,VCC和VDD
  • 电路笔记(元器件):并串转换芯片 SN65LV1023A 10:1 LVDS 串行器/解串器变送器 100 至 660Mbps
  • Dispatch PDI(DPDI)kettle调度管理平台稳定版本,正式登场!
  • 突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
  • 【解密LSTM、GRU如何解决传统RNN梯度消失问题】
  • 阳台储能新纪元:ADL200N-CT/D16-WF-1导轨表,家庭能源自由的钥匙
  • 2023年全国研究生数学建模竞赛华为杯D题区域双碳目标与路径规划研究求解全过程文档及程序
  • LangChain Chat History概念指南
  • 案例解读:交安与建安安全员 C 证在实践中的差异
  • 小说系统开发:打造属于你的数字阅读王国
  • [小白]java之复杂JSON解析【超详细】
  • Vue3实现键盘字母筛选功能
  • Day.27
  • 第四章 W55MH32初体验
  • MySQL中的隐式主键和隐藏列
  • 【题解】P1156 垃圾陷阱
  • php做网站后台/百度seo综合查询
  • 网站建设如何报价/全网营销推广软件
  • 铜陵app网站做招聘信息/添加友情链接的技巧
  • 苏州网站开发公司兴田德润在哪儿/上海十大营销策划公司
  • 大连哪家网站做的好/网站制作方案
  • 网站建设名词解释/国家职业技能培训官网