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

LeetCode_Python_二分查找算法

二分查找

  • 算法要求
  • 二分查找过程
  • 如何更新左右边界
  • 实例
    • type1:常规记录中间元素
    • type2:取跳出循环后的左或右边界

算法要求

  1. 顺序存储结构
  2. 元素大小有序

二分查找过程

  1. 将元素排序;
  2. 将中间位置记录的这个元素与目标元素比较;
    2.1 如果相同,则查找成功;
    2.2 否则将元素分为前、后两部分,如果目标元素相比查找元素在左,则更新右边界;如果目标元素相比查找元素在右,则更新左边界;
    2.3 重复步骤2

如何更新左右边界

  1. 查找区间为 [left, right],循环条件为 left <= right;左右分别更新为 mid+1、mid-1
  2. 查找区间为 [left, right),循环条件为 left < right;左右分别更新为 mid+1、mid

实例

type1:常规记录中间元素

  1. 有效的平方数
def isPerfectSquare(num):left,right=0,numwhile left<=right:mid=(left+right)//2if mid*mid==num:return Trueelif mid*mid<num:left=mid+1else:right=mid-1return False

type2:取跳出循环后的左或右边界

  1. 找出X的平方根

:跳出循环时左右边界的意义,更新前的左右边界分别满足 if 后的条件

def findSqrt(x):left,right=0,xwhile left<=right:mid=(left+right)//2if mid*mid<=x:left=mid+1else:right=mid-1#跳出循环时 left>right,说明上一个更新的是 left,即(left-1)*(left-1)<=x;又 right*right>x,所以left*left>x,因此 left-1 就是要查找的目标数return left-1  
  1. 搜索插入位置
    给定一个排序数组nums和一个目标值target,返回目标值索引。如果不存在,返回它将会被按顺序插入的位置。
def searchInsert(nums, target):left,right=0,len(nums)-1while left<=right:mid=(left+right)//2if nums[mid]==target:return midelif nums[mid]<target:left=mid+1else:right=mid-1#跳出循环时后,nums[left-1]<target & nums[right]>target i.e nums[left]>target,因此target要放在left位置return left  

相关文章:

LeetCode_Python_二分查找算法

二分查找算法要求二分查找过程如何更新左右边界实例type1&#xff1a;常规记录中间元素type2&#xff1a;取跳出循环后的左或右边界算法要求 顺序存储结构元素大小有序 二分查找过程 将元素排序&#xff1b;将中间位置记录的这个元素与目标元素比较&#xff1b; 2.1 如果相同&a…...

功能测试三年,是时候做出改变了

前言 测试行业3年多经验&#xff0c;学历大专自考本科&#xff0c;主要测试方向web&#xff0c;PC端&#xff0c;wap站&#xff0c;小程序公众号都测试过&#xff0c;app也测过一些&#xff0c;C端B端都有&#xff0c;除功能外&#xff0c;接口性能也有涉猎&#xff0c;但是不…...

图扑孪生工厂流水线组态图可视化

前言 2018 年&#xff0c;世界经济论坛(WEF)携手麦肯锡公司共同倡议并正式启动了全球“灯塔工厂网络项目”(Lighthouse Network)&#xff0c;共同遴选率先应用工业革命 4.0 技术实现企业盈利和持续发展的创新者与示范者。这就使得工厂系统需要对各流水线及生产运行成本方面进行…...

车机开发—【CarService启动流程】

汽车架构&#xff1a;车载HAL是汽车与车辆网络服务之间的接口定义&#xff08;同时保护传入的数据&#xff09;&#xff1a; 车载HAL与Android Automotive架构&#xff1a; Car App&#xff1a;包括OEM和第三方开发的AppCar API&#xff1a;内有包含CarSensorManager在内的AP…...

webpack中require.context的运用

1. 作用&#xff1a; 利用require创建context (上下文)&#xff0c;来告知在编译时具体需要导入哪些模块(即&#xff1a;批量处理待导入模块进行导入)&#xff1b; webpack会在构建的时候解析代码中的require.context() (实际上是webpack的方法&#xff0c;vue一般基于webpack…...

2023“Java基础-中级-高级”面试集结,已奉上我的膝盖

Java基础&#xff08;对象线程字符接口变量异常方法&#xff09; 面向对象和面向过程的区别&#xff1f; Java 语言有哪些特点&#xff1f; 关于 JVM JDK 和 JRE 最详细通俗的解答 Oracle JDK 和 OpenJDK 的对比 Java 和 C的区别&#xff1f; 什么是 Java 程序的主类&…...

RabbitMQ之发布确认

发布确认 1 发布确认原理 生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式,所有在该信道上面发布的消息都将会被指派一个唯一的 ID(从 1 开始),一旦消息被投递到所有匹配的队列之后,broker就会发送一个确认给生产者(包含消息的唯一 ID),这就使得生产者知道消…...

一文读懂函数编程及其工作原理

微软MVP实验室研究员 马洪喜-微软 MVP 19年研发经验 云计算咨询顾问专家 容器云及基础架构云技术专家 DevOps 及微服务咨询专家 什么是函数编程 我先用通俗的大白话给大家解释一下函数(Functions, Function as a Service, FaaS)的几个要点&#xff0c;这样看后面示例时才不…...

WSO2 apim Subscribe to an API

WSO2 apim Application Subscribe to an API1. Published an Api2. Subscribe to an API using Key Generation Wizard3. Subscribe to an existing application4. AwakeningWSO2安装使用的全过程详解: https://blog.csdn.net/weixin_43916074/article/details/127987099. Offi…...

聚类(性能度量)

文章目录聚类&#xff08;性能度量&#xff09;外部指标例1内部指标例2聚类&#xff08;性能度量&#xff09; 对数据集 D{x1,x2,...,xm}D\{x_1,x_2,...,x_m\}D{x1​,x2​,...,xm​} &#xff0c;假定通过聚类给出的簇划分为 C{C1,C2,...,Ck}C\{C_1,C_2,...,C_k\}C{C1​,C2​,…...

GPT-4——比GPT-3强100倍

GPT-4——比GPT-3强100倍 当前世界上最强大的人工智能系统当属ChatGPT。推出2个月用户数就突破1亿。ChatGPT是当下最炙手可热的话题&#xff0c;科技圈几乎人人都在讨论。这边ChatGPT的热度还在不断攀升&#xff0c;另一边来自《纽约时报》的最新报道称ChatGPT即将被自家超越&…...

echart中x轴数据过多时展示不全

项目中遇到需要展示一些柱状图&#xff0c;之前做相关功能时&#xff0c;横坐标x轴一直用的是时间&#xff0c;所以没有注意到这个问题。 如下图所示&#xff1a; 当x轴显示的是”人名“这种类型的值的时候&#xff0c;这种显示情况就有问题了&#xff0c;这样就不会知道&…...

关于GIS原理的实际分析应用题的一些解法

话不多说&#xff0c;看题.01 公园选址问题1题目请写出利用GIS技术进行公园选址的空间操作步骤。其中公园选址条件:1&#xff09;为了安静舒适&#xff0c;要求该园区离主要公路1公里以外&#xff0c;且交通方便&#xff0c;离主要公路3公里以内。2&#xff09;公园最好依附在大…...

混合精度训练,FP16加速训练,降低内存消耗

计算机中的浮点数表示&#xff0c;按照IEEE754可以分为三种&#xff0c;分别是半精度浮点数、单精度浮点数和双精度浮点数。三种格式的浮点数因占用的存储位数不同&#xff0c;能够表示的数据精度也不同。 Signed bit用于控制浮点数的正负&#xff0c;0表示正数&#xff0c;1表…...

每天五分钟机器学习:新的大规模的机器学习机制——在线学习机制

本文重点 本节课程我们将学习一种新的大规模的机器学习机制--在线学习机制。在线学习机制让我们可以模型化问题。在线学习算法指的是对数据流进行学习而非离线的静态数据集的学习。许多在线网站都有持续不断的用户流,对于每一个用户,网站希望能在不将数据存储到数据库中便顺…...

计算机组成原理错题

静态RAM&#xff08;SRAM&#xff09;和动态RAM&#xff08;DRAM&#xff09;的基本电路图不同&#xff0c;因此可以通过观察存储器的基本电路图来判断它属于哪一类。 静态RAM的基本电路图包括一个存储单元和一个数据选择器。每个存储单元由一个触发器&#xff08;flip-flop&a…...

数学基础整理

收纳一些天天忘的结论qwq 线性求逆元 invi(p−pi)invpmodiinv_i(p-\dfrac{p}{i})\times inv_{p\bmod i}invi​(p−ip​)invpmodi​ 卡特兰数 组合数公式&#xff1a;HnC2nn−C2nn−1H_nC_{2n}^n-C_{2n}^{n-1}Hn​C2nn​−C2nn−1​ 递推式&#xff1a;HnHn−1(4n−2)n1H_n\d…...

JavaWeb11-死锁

目录 1.死锁定义 1.1.代码演示 1.2.使用jconsole/jvisualvm/jmc查看死锁 ①使用jconsole&#xff1a;最简单。 ②使用jvisualvm&#xff1a;&#xff08;Java虚拟机&#xff09;更方便&#xff0c;更直观&#xff0c;更智能&#xff0c;更高级&#xff0c;是合适的选择。 …...

堆的概念和结构以及堆排序

前言 普通的二叉树是不适合用数组来存储的&#xff0c;因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结 构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储&#xff0c;需要注意的是这里的堆和操作系统 虚拟进程地址空间中的堆是两回事&#xff0c…...

【Linux学习笔记】1.Linux 简介及安装

前言 本章介绍Linux及其安装方法。 Linux 简介 Linux 内核最初只是由芬兰人林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的类 Unix 操作系统&#xff0c;是一个基于 POSIX 和 UNIX 的多…...

3分钟掌握novel-downloader:打造你的永久小说图书馆终极指南

3分钟掌握novel-downloader&#xff1a;打造你的永久小说图书馆终极指南 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 你是否曾经因为小说网站突然关闭、章节被删除或VIP内容无法离…...

高校邮件安全体系升级与 Proofpoint 部署实践研究 —— 以特拉华大学为例

摘要&#xff1a;随着网络钓鱼、垃圾邮件与恶意邮件攻击持续威胁高校信息系统&#xff0c;电子邮件安全已成为校园网络防护的核心环节。特拉华大学自 2026 年 6 月 1 日起全面启用 Proofpoint 邮件安全平台&#xff0c;构建覆盖邮件过滤、威胁隔离、用户自助处置与安全运营的全…...

基于注意力机制的科学数据压缩:层次化架构与误差边界保证

1. 项目概述&#xff1a;当科学计算遇上注意力机制在计算流体动力学、气候模拟、高能物理这些前沿科学领域&#xff0c;每一次仿真实验都可能产生TB甚至PB级别的数据。这些数据并非杂乱无章&#xff0c;它们通常诞生于高度结构化的多维网格之上&#xff0c;每个网格点承载着一个…...

5分钟掌握SRWE:Windows窗口分辨率自由调整的终极指南

5分钟掌握SRWE&#xff1a;Windows窗口分辨率自由调整的终极指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾经遇到过这样的烦恼&#xff1f;游戏截图不够清晰&#xff0c;设计软件窗口无法适配特定…...

为什么92.7%的企业漏检DeepSeek生成的隐性偏见内容?3类高危prompt绕过案例首次公开

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek输出内容审核的行业现状与挑战 当前&#xff0c;以DeepSeek-R1为代表的开源大语言模型在代码生成、数学推理和多轮对话等任务中展现出卓越性能&#xff0c;但其开放权重与高自由度输出特性&…...

DeepSeek限流配置全链路解析(从Token Bucket到Sentinel熔断的7层校验机制)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek限流策略配置全景概览 DeepSeek模型服务在高并发场景下需依赖精细化的限流机制保障系统稳定性与资源公平性。限流策略不仅作用于API网关层&#xff0c;还贯穿模型推理服务、缓存中间件及后端调…...

Python爬虫绕过JA3/JA4指纹检测的TLS定制实战

1. 这不是“绕过检测”&#xff0c;而是理解TLS握手的底层语言你写好了一个Python爬虫&#xff0c;目标网站明明没上WAF、也没用Cloudflare&#xff0c;但一发请求就返回403——连HTML正文都没有&#xff0c;只有个空响应体。抓包一看&#xff0c;服务器在TCP三次握手之后、TLS…...

AI检测率太高论文过不了?这4个降AI率平台让你2026年顺利毕业!

降AI率工具已成为学术写作中不可或缺的辅助手段。随着高校对AI检测标准的不断升级&#xff0c;越来越多学生开始关注专业、高效的降AIGC平台。基于知网、维普、Turnitin等权威检测系统的数据支持&#xff0c;结合全国多所高校师生的实际使用反馈&#xff0c;以下几款平台在降低…...

macOS微信防撤回终极指南:3分钟掌握WeChatIntercept完整使用方法

macOS微信防撤回终极指南&#xff1a;3分钟掌握WeChatIntercept完整使用方法 【免费下载链接】WeChatIntercept 微信防撤回插件&#xff0c;一键安装&#xff0c;仅MAC可用&#xff0c;支持v3.7.0微信 项目地址: https://gitcode.com/gh_mirrors/we/WeChatIntercept 还在…...

【ChatGPT移动端实战指南】:20年AI工程师亲测的5大隐藏技巧,90%用户从未用过

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT移动端使用体验 在 iOS 和 Android 平台上&#xff0c;官方 ChatGPT 应用已全面支持语音输入、多轮上下文保持与离线提示缓存&#xff0c;显著优化了通勤、会议间隙等碎片化场景下的交互效率。…...