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

算法刷题【二分法】

题目:

在这里插入图片描述
在这里插入图片描述

  • 注意题目中说明了数据时非递减的,那么这样就存在二分性,能够实现logn的复杂度。
  • 二分法每次只能取寻找特定的某一个值,所以我们要分别求左端点和有端点。

分析第一组用例得到结果如下:
在这里插入图片描述
成功找到左端点8


由此可知,用二分法去寻找左端端点的时候:

  • num[mid]<target,那么此时mid的左边包括自身的值都小于target,所以直接执行赋值操作left = mid + 1即可。

  • num[mid]= =target的时候,由于可能此时的mid已经是左端端点了。但是只是可能是左端点了,也有可能不是左端点,所以相等的情况就要和大于的情况合并起来操作,执行right = mid操作。

  • num[mid]>target的时候,mid的右边包括自身都比target的值要大,执行right = mid具有合理性,不能执行right = mid -1因为此时和等于合并起来了,判断条件变成是num[mid] <= target在等于的情况下,可能成为左端的端点。
    图示*😗
    在这里插入图片描述
    上述就是找最左边的端点的基本思路了,但是我们还有一些细节需要处理:

  • 对于每次mid位置的取发:
    1:mid = left + (right-left)/2
    2:mid = left + (right-left +1)/2
    有以上两种取法,前后者在奇数的情况下相同,但是在偶数的情况下就会有所不同。
    偶数的情况下,1会取到中间两个数的片左边的那一个,2会取到中间两个数的偏右边那一个。

对于取左边端点来说:

到最终可能会有这么一种的情况:
在这里插入图片描述
所以在用二分法寻找左侧端点的时候,应该要使用mid的第一种取法(mid = left + (right-left)/2 )。

相关文章:

算法刷题【二分法】

题目&#xff1a; 注意题目中说明了数据时非递减的&#xff0c;那么这样就存在二分性&#xff0c;能够实现logn的复杂度。二分法每次只能取寻找特定的某一个值&#xff0c;所以我们要分别求左端点和有端点。 分析第一组用例得到结果如下: 成功找到左端点8 由此可知&#xff0…...

.NET MAUI Sqlite程序应用-数据库配置(一)

项目名称:Ownership&#xff08;权籍信息采集&#xff09; 一、安装 NuGet 包 安装 sqlite-net-pcl 安装 SQLitePCLRawEx.bundle_green 二、创建多个表及相关字段 Models\OwnershipItem.cs using SQLite;namespace Ownership.Models {public class fa_rural_base//基础数据…...

基于WPF技术的换热站智能监控系统09--封装水泵对象

1、添加用户控件 2、编写水泵UI 控件中用到了Viewbox控件&#xff0c;Viewbox控件是WPF中一个简单的缩放工具&#xff0c;它可以帮助你放大或缩小单个元素&#xff0c;同时保持其宽高比。通过样式和属性设置&#xff0c;你可以创建出既美观又功能丰富的用户界面。在实际开发中…...

GLM+vLLM 部署调用

GLMvLLM 部署调用 vLLM 简介 vLLM 框架是一个高效的大型语言模型&#xff08;LLM&#xff09;推理和部署服务系统&#xff0c;具备以下特性&#xff1a; 高效的内存管理&#xff1a;通过 PagedAttention 算法&#xff0c;vLLM 实现了对 KV 缓存的高效管理&#xff0c;减少了…...

leetcode 122 买卖股票的最佳时机||(动态规划解法)

题目分析 题目描述的已经十分清楚了&#xff0c;不做过多阐述 算法原理 状态表示 我们假设第i天的最大利润是dp[i] 我们来画一下状态机 有两个状态&#xff0c;买入后和卖出后&#xff0c;我们就可以使用两个dp表来解决问题 f[i]表示当天买入后的最大利润 g[i]表示当天卖出…...

C++设计模式---组合模式

1、介绍 组合模式&#xff08;Composite&#xff09;是一种结构型设计模式&#xff0c;也被称为部分-整体模式。它将复杂对象视为由多个简单对象&#xff08;称为“组件”&#xff09;组成的树形结构&#xff0c;这些组件能够共享相同的行为。每个组件都可能包含一个或多个子组…...

工厂方法模式(大话设计模式)C/C++版本

工厂方法模式 C 参考&#xff1a;https://www.cnblogs.com/Galesaur-wcy/p/15926711.html #include <iostream> #include <memory> using namespace std;// 运算类 class Operation { private:double _NumA;double _NumB;public:void SetNumA(){cout << &…...

[NCTF 2018]flask真香

打开题目后没有提示框&#xff0c;尝试扫描后也没有什么结果&#xff0c;猜想是ssti。所以尝试寻找ssti的注入点并判断模版。 模版判断方式&#xff1a; 在url地址中输入{7*7} 后发现不能识别执行。 尝试{{7*7}} ,执行成功&#xff0c;继续往下走注入{{7*7}}&#xff0c;如果执…...

性能测试3【搬代码】

1.Linux服务器性能分析命令及详解 2.GarafanainfluxDB监控jmeter数据 3.GarafanaPrometheus监控服务器和数据库性能 4.性能瓶颈分析以及性能调优方案详解 一、无界面压测时&#xff0c; top load average:平均负载 htop 二、Garafana监控平台 传统项目&#xff1a;centosphpm…...

<tesseract><opencv><Python>基于python和opencv,使用ocr识别图片中的文本并进行替换

前言 本文是在python中,利用opencv处理图片,利用tesseractOCR来识别图片中的文本并进行替换的一种实现方法。 环境配置 系统:windows 平台:visual studio code 语言:python 库:pyqt5、opencv、tesseractOCR 代码介绍 本文程序功能实现,主要依赖于tesseractOCR这个库,…...

海南云亿商务咨询有限公司解锁抖音电商新纪元

在当今数字化浪潮中&#xff0c;抖音电商以其独特的魅力和强大的用户基础&#xff0c;迅速成为企业营销的新宠。海南云亿商务咨询有限公司&#xff0c;作为专注于抖音电商服务的领先企业&#xff0c;凭借专业的团队和丰富的经验&#xff0c;为众多企业提供了高效、精准的电商服…...

arm64架构 统信UOS搭建PXE无盘启动Linux系统(麒麟桌面为例)

arm64架构 统信UOS搭建PXE无盘启动Linux系统&#xff08;麒麟桌面为例&#xff09; 搞了好久搞得头疼哎 1、准备服务器UOS服务器 准备服务IP 这里是192.168.1.100 1.1、安装程序 yum install -y dhcp tftp tftp-server xinetd nfs-utils rpcbind 2、修改配置 2.1、修改dhcpd.c…...

SpringBoot 实现 阿里云语音通知(SingleCallByTts)

目录 一、准备工作1.开通 阿里云语音服务2.申请企业资质3.创建语音通知模板&#xff0c;审核通过4.调用API接口---SingleCallByTts5.调试API接口---SingleCallByTts 二、代码实现1.导入依赖 com.aliyun:aliyun-java-sdk-dyvmsapi:3.0.22.创建工具类&#xff0c;用于发送语音通知…...

IDEA 连接GitHub仓库并上传项目(同时解决SSH问题)

目录 1 确认自己电脑上已经安装好Git 2 添加GitHub账号 2.1 Setting -> 搜索GitHub-> ‘’ -> Log In with Token 2.2 点击Generate 去GitHub生成Token 2.3 勾选SSH后其他不变直接生成token 2.4 然后复制token添加登录账号即可 3 点击导航栏中VCS -> Create…...

vue/react/js 常用的原生获取当前页面的url网址的相关方法

目录 第一章 场景 第二章 总结 第一章 场景 最近实现需求时遇到这么一种情况&#xff1a; 本地url —— 线上url —— 需求&#xff1a;需要将token清除掉 注意事项&#xff1a;token不是#/后面的参数&#xff0c;说明并不是我们前端返回的&#xff0c;vue路由的方法使用不…...

java-final 关键字

## Java中的final关键字 ### 1. final关键字的基本概念 final是Java中一个非常重要的关键字&#xff0c;用于声明常量、阻止继承和重写&#xff0c;确保类、方法和变量的不可变性。具体来说&#xff0c;final关键字可以用来修饰类、方法和变量&#xff08;包括成员变量和局部…...

ARM32开发--IIC软实现

知不足而奋进 望远山而前行 目录 文章目录 前言 开发流程 GD32F4软件I2C初始化 GD32F4软件I2C引脚功能 写操作 读操作 总结 前言 在嵌入式系统开发中&#xff0c;软件实现的I2C通信协议扮演着至关重要的角色。本文将深入探讨如何在GD32F4系列微控制器上实现软件I2C功能…...

在有向无环图(DAG)中实现拓扑排序与最短路径和最长路径算法

有向无环图&#xff08;DAG&#xff09;是一类非常重要的图结构&#xff0c;广泛应用于任务调度、数据依赖分析等领域。本文将介绍如何在DAG中实现拓扑排序、单源最短路径和单源最长路径算法&#xff0c;并提供完整的Java代码示例。 图结构定义 首先&#xff0c;我们定义一个…...

SQLServer按照年龄段进行分组查询数据

1.按照年龄段对数据进行分组&#xff0c; 将人群分为&#xff1a;青年&#xff0c;中年&#xff0c;老年三种类型&#xff0c;人群类型加上其他分组字段如&#xff1a;性别&#xff0c;进行多条件分组,统计各个年龄段多少人 Select case sex when 1 then ‘男’ when 2 then …...

开放式耳机哪个品牌质量比较好?2024高性价比机型推荐!

随着音乐技术的不断发展&#xff0c;开放式耳机已成为音乐发烧友们的另外一种选择。从最初的简单音质&#xff0c;到如今的高清解析&#xff0c;开放式耳机不断进化升级。音质纯净&#xff0c;佩戴舒适&#xff0c;无论是街头漫步还是家中放松时候&#xff0c;都能带给你身临其…...

Mac环境OpenClaw深度优化:Qwen3-4B模型推理速度提升30%方案

Mac环境OpenClaw深度优化&#xff1a;Qwen3-4B模型推理速度提升30%方案 1. 为什么需要优化OpenClaw的模型推理速度 上周我在用OpenClaw处理一个简单的文件整理任务时&#xff0c;发现整个流程耗时比预期长了近一倍。通过日志排查才发现&#xff0c;大部分时间都消耗在等待Qwe…...

OpenClaw(首选,全能执行) - 支持平台:**WhatsApp、Telegram、微信、企业微信、飞书、Slack、Discord**等15+平台

一、自动处理邮件的AI&#xff08;过滤、归档、代发、总结&#xff09; 1. OpenClaw&#xff08;全能型&#xff0c;本地多平台&#xff09; 核心能力&#xff1a;垃圾邮件过滤、自动归档、按规则分类、提取待办、代发模板邮件、批量退订、邮件摘要。优势&#xff1a;本地部署、…...

GameFramework——FileSystem篇

目录 一、快速入门 1.1 什么是文件系统模块&#xff1f; 1.2 基本使用步骤 1.2.1 创建文件系统 1.2.2 写入文件 1.2.3 读取文件 1.2.4 删除文件 1.2.5 加载已有文件系统 二、文件布局 2.1 HeaderData&#xff08;文件头&#xff09; 2.2 BlockData&#xff08;块数据…...

Claude 源码泄露事件深度分析:一场“打包错误“引发的行业地震

卷卷 | 2026年4月1日一句话结论一周之内&#xff0c;Anthropic 连续两次泄露&#xff1a;先是有近 3,000 份内部文件&#xff08;含未发布模型 Claude Mythos 的详细信息&#xff09;被公开暴露&#xff1b;后是 Claude Code v2.1.88 的 npm 包中意外包含了完整源码的 source m…...

OpenClaw飞书机器人实战:Qwen3-32B-Chat私有镜像接入

OpenClaw飞书机器人实战&#xff1a;Qwen3-32B-Chat私有镜像接入 1. 为什么选择OpenClaw飞书本地大模型&#xff1f; 去年我接手了一个小团队的效率工具改造项目&#xff0c;核心需求是"在不泄露内部数据的前提下&#xff0c;实现自动化日报生成和文件归档"。尝试过…...

汇智信科-机场数字孪生系统

机场数字孪生系统以数字化孪生技术构建机场全要素虚拟映射&#xff0c;精准还原机场、跑道、塔台等设施及飞机运行状态&#xff0c;支持多维度动态监测与可视化管控&#xff1b;通过模拟飞机调度、跑道滑行等全流程作业场景&#xff0c;覆盖机场多角色业务协同&#xff0c;同时…...

大数据:Hadoop(Yarn)

第1章 Yarn资源调度器Yarn是一个资源调度平台&#xff0c;负责为运算程序提供服务器运算资源&#xff0c;相当于一个分布式的操作系统平台&#xff0c;而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。1.1 Yarn基础架构1.2 Yarn工作机制&#xff08;1&#xff09;…...

Vue 组态化管道流动效果:从零构建现代化流体模拟系统

1. 为什么需要管道流动模拟系统 在工业自动化和教学演示领域&#xff0c;可视化管道系统是一个常见需求。想象一下化工厂的液体输送管道、城市供水系统或者实验室的流体实验装置&#xff0c;这些场景都需要直观展示流体在管道中的流动状态。传统做法是使用静态图片或简单动画&a…...

OpenClaw多模态研究:Qwen2.5-VL-7B在学术资料分析中的应用

OpenClaw多模态研究&#xff1a;Qwen2.5-VL-7B在学术资料分析中的应用 1. 为什么选择OpenClawQwen2.5-VL进行学术研究 去年冬天整理博士论文参考文献时&#xff0c;我对着堆积如山的PDF文件突然意识到&#xff1a;传统文献管理工具只能解决"存储"问题&#xff0c;却…...

Qwen3.5-2B边缘部署教程:ARM架构服务器上运行多模态模型详细步骤

Qwen3.5-2B边缘部署教程&#xff1a;ARM架构服务器上运行多模态模型详细步骤 1. 引言 Qwen3.5-2B是阿里云推出的轻量化多模态基础模型&#xff0c;属于Qwen3.5系列的小参数版本&#xff08;20亿参数&#xff09;。这款模型主打低功耗、低门槛部署&#xff0c;特别适配端侧和边…...