算法——二分查找(day10)

目录

69. x 的平方根

题目解析:

算法解析:

代码:

35. 搜索插入位置

题目解析:

算法解析:

代码:


69. x 的平方根

69. x 的平方根 - 力扣(LeetCode)

题目解析:

老规矩,先用暴力算法思考~

我们对从1到x的平方挨个遍历去寻找,如果发现遇到其平方和刚好相等那就返回原位置,如果x刚好卡在两数平方和之间,那就取其前面的。

算法解析:

我们通过暴力可以发现能将所有情况划分为两个区间,一个是平方和小于等于x,代表能得到结果的区间。另一个是平方和大于x的区间,代表无法得到结果的区间。

  • 当mid*mid落入有结果区间时,left紧紧跟住mid即可。
  • 当mid*mid落入无结果区间时,right跳出区间即可。

代码:

class Solution {
public:int mySqrt(int x) {//特殊情况,特殊处理if (x < 1) return 0;int left = 1;int right = x;while (left < right){//防止数值溢出long long mid = left + (right - left + 1) / 2;if (mid * mid > x){right = mid - 1;}else{left = mid;}}return left;}
};

 

35. 搜索插入位置

35. 搜索插入位置 - 力扣(LeetCode)

题目解析:

这道题一看复杂度就知道要用二分查找了,而关键就在于我们需要找到其二段性。需要划分出有结果的区间与无结果的区间。

算法解析:

何为有结果区间呢?就比如我们找到与target相等的值就会返回其结果,找到比target大的值就意味要插入数组中并返回下标。这两个都是有结果的所以以它们为边界划分区间。

  • 当mid落入有结果区间,left跟紧mid即可。
  • 当mid落入无结果区间,right跳出区间即可。

代码:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/50436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决学生技能短板:泰迪智能科技2024年中职大数据实验室,全面提升学生实践能力

一、中职院校现状及实验室建设背景 在当今信息化时代&#xff0c;大数据技术已成为国家战略发展的重要方向。中职院校作为我国职业教育体系的重要组成部分&#xff0c;肩负着培养高素质技术技能人才的重任。然而&#xff0c;目前我国中职院校在大数据教育方面存在以下问题&…

学习日志:双亲委派模型

文章目录 前言一、双亲委派模型二、双亲委派模型的执行流程三、双亲委派模型的好处四、打破双亲委派模型方法 前言 类加载器有很多种&#xff0c;当我们想要加载一个类的时候&#xff0c;具体是哪个类加载器加载呢&#xff1f;这就需要提到双亲委派模型了。 ClassLoader 类使用…

十分钟给甲方发一个微信可查看的CAD图纸叠加航测成果案例

0.序&#xff1a; 无人机测绘成果的应用非常广&#xff0c;不论是做测绘的、做设计的还是做施工的&#xff0c;只要需要知道现场的状况&#xff0c;现在基本都用无人机做航测。 测绘的线化图&#xff0c;设计的方案、施工中拿到的设计图&#xff0c;基本都是dxf、dwg格式的CAD…

纯原创【车牌识别】基于图像处理的车牌识别——matlab项目实战(含GUI界面)详解

摘要 车牌识别系统乃计算机视觉与模式识别技术于智能交通领域的重要研究课题之一。其作用在于从复杂背景里提取运动中的汽车牌照&#xff0c;进而识别出车牌号码。车牌识别技术在高速公路电子收费、日常停车场管理以及交通违章监控等场景得到广泛运用。它的问世对于维护交通安全…

Linux 安装 GDB (无Root 权限)

引入 在Linux系统中&#xff0c;如果你需要在集群或者远程操作没有root权限的机子&#xff0c;安装GDB&#xff08;GNU调试器&#xff09;可能会有些限制&#xff0c;因为通常安装新软件或更新系统文件需要管理员权限。下面我们介绍可以在没有root权限的情况下安装GDB&#xf…

图形学和音视频开发哪个更有钱景,更值得入行?

图形学有几个细分的方向&#xff0c;在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「音视频开发的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff0…

PHP教程002:PHP变量介绍

文章目录 一、PHP程序1、PHP标记2、PHP代码3、语句结束符;4、注释 二、PHP变量2.1 声明变量2.2 赋值运算符3、变量命名规则 一、PHP程序 PHP文件的默认扩展名是".php"PHP文件可以包含html、css、js 序号组成描述1<?php ... ?>PHP标记2PHP代码函数、数组、流…

昇思25天学习打卡营第20天|munger85

GAN图像生成 生成对抗网络中是为了让我们生成的东西向期望的那样&#xff0c;就是为了让生成的东西很像&#xff0c;真的&#xff0c;例如用它来画画。就是描述整个网络的逻辑和目的&#xff0c;它有两部分组成&#xff0c;一个是生成器&#xff0c;一个是辨别器。他希望的是辨…

C++ 沙漏图案(Hour-glass Pattern)

给定正整数 n&#xff0c;以沙漏形式打印数字模式。示例&#xff1a; 输入&#xff1a;rows_no 7 输出&#xff1a; 1 2 3 4 5 6 7 2 3 4 5 6 7 3 4 5 6 7 4 5 6 7 5 6 7 6 7 7 6 7 5 6 7 4 5 6 7 3 4 5 6 7 2 3 4 5 6 7 1 2 3 4 5 6…

如何在 VitePress 中自定义logo,打造精美首页 #home-hero-image

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…

React 和 Vue _使用区别

目录 一、框架介绍 1.Vue 2.React 二、框架结构 1.创建应用 2.框架结构 三、使用区别 1.单页面组成 2.样式 3.显示响应式数据 4.响应式html标签属性 5.控制元素显隐 6.条件渲染 7.渲染列表 react和vue是目前前端比较流行的两大框架&#xff0c;前端程序员应该将两…

go-kratos 学习笔记(8) redis的使用

redis的在项目中的使用是很常见的&#xff0c;前面有了mysql的使用redis的也差不多&#xff1b;也是属于在data层的操作&#xff0c;所以需要新建一个 NewRedisCmd方法 在internal/data/data.go中新增NewRedisCmd 方法&#xff0c;注入到ProviderSet package dataimport (&quo…

正则采集器之五——商品匹配规则

需求设计 实现分析 系统通过访问URL得到html代码&#xff0c;通过正则表达式匹配html&#xff0c;通过反向引用来得到商品的标题、图片、价格、原价、id&#xff0c;这部分逻辑在java中实现。 匹配商品的正则做成可视化编辑&#xff0c;因为不同网站的结构不同&#xff0c;同…

论文阅读:A Survey on Evaluation of Large Language Models-鲁棒性相关内容

A Survey on Evaluation of Large Language Models 只取了鲁棒性相关的内容 LLMs&#xff1a;《A Survey on Evaluation of Large Language Models大型语言模型评估综述》理解智能本质(具备推理能力)、AI评估的重要性(识别当前算法的局限性设 对抗鲁棒性是衡量大型语言模型&…

ComfyUI 、ComfyUI-Manager、ComfyUI-Translation语言包、Insightface、Crystools资源监测器安装

简单介绍ComfyUI、ComfyUI-Manager、ComfyUI-Translation语言包、Insightface、Crystools资源监测器安装&#xff0c;并通过ComfyUI-Manager安装缺失的节点。 1、ComfyUI安装 打开https://github.com/comfyanonymous/ComfyUI&#xff0c;找到Installing中 Direct link to do…

phpenv安装redis扩展

1、下载dll文件 https://pecl.php.net/package/redis 我的是php8.1, 安装最新版的 DLL文件 &#xff12;、将dll文件放到php安装目录的ext目录下 3、在php.ini中增加配置后重启服务 [Redis] extension php_redis.dll

VMware安装(有的时候启动就蓝屏建议换VM版本)

当你开始使用虚拟化技术来管理和运行多个操作系统时&#xff0c;VMware 是一个强大且广泛使用的选择。本篇博客将指导你如何安装 VMware Workstation Pro&#xff0c;这是一个功能强大的虚拟机软件&#xff0c;适用于个人和专业用户。 一、下载 VMware Workstation Pro 访问官网…

JavaScript青少年简明教程:函数及其相关知识(上)

JavaScript青少年简明教程&#xff1a;函数及其相关知识&#xff08;上&#xff09; 在JavaScript中&#xff0c;函数是一段可以重复使用的代码块&#xff0c;它执行特定的任务并可能返回结果。 内置函数&#xff08;Built-in Functions&#xff09; 内置函数是编程语言中预先…

PLC网关:开启工业4.0时代的智能工厂之路

PLC即可编程逻辑控制器&#xff0c;是工业自动化领域的核心设备&#xff0c;广泛应用于各个工业领域。从PLC问世至今&#xff0c;一直表现出强大的生命力和高速增长态势&#xff0c;2020年全球PLC市场的销售量已经达到了百亿RMB级别。 随着行业智能化、数字化推广&#xff0c;…

【Vulnhub系列】Vulnhub_Seattle_003靶场渗透(原创)

【Vulnhub系列靶场】Vulnhub_Seattle_003靶场渗透 原文转载已经过授权 原文链接&#xff1a;Lusen的小窝 - 学无止尽&#xff0c;不进则退 (lusensec.github.io) 一、环境准备 1、从百度网盘下载对应靶机的.ova镜像 2、在VM中选择【打开】该.ova 3、选择存储路径&#xff0…