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

算法竞赛相关 Java 二分模版

目录

找和目标值相关

方法 Arrays.binarySearch();

二分答案模版


找和目标值相关

public class BinarySearchTemplate {// 查找大于 x 的最小值(即严格上界)public static int upperBound(int[] arr, int x) {int left = 0, right = arr.length;while (left < right) {int mid = left + (right - left) / 2;if (arr[mid] > x) {right = mid;} else {left = mid + 1;}}if(left<0||left>arr.length-1) {return -1; // -1 表示没有找到符合条件的元素}else {return arr[left]; 	}}// 查找大于等于 x 的最小值(即第一个不小于 x 的元素)public static int lowerBound(int[] arr, int x) {int left = 0, right = arr.length;while (left < right) {int mid = left + (right - left) / 2;if (arr[mid] >= x) {right = mid;} else {left = mid + 1;}}if(left < 0||left > arr.length-1) {return -1; // -1 表示没有找到符合条件的元素}else {return arr[left]; 	}}// 查找小于 x 的最大值(即严格下界)public static int floor(int[] arr, int x) {int left = -1, right = arr.length - 1;while (left < right) {int mid = left + (right - left + 1) / 2;if (arr[mid] < x) {left = mid;} else {right = mid - 1;}}if(left < 0||left > arr.length-1) {return -1; // -1 表示没有找到符合条件的元素}else {return arr[left]; 	}}// 查找小于等于 x 的最大值(即最后一个不大于 x 的元素)public static int ceiling(int[] arr, int x) {int left = -1, right = arr.length - 1;while (left < right) {int mid = left + (right - left + 1) / 2;if (arr[mid] <= x) {left = mid;} else {right = mid - 1;}}if(left < 0||left > arr.length-1) {return -1; // -1 表示没有找到符合条件的元素}else {return arr[left]; 	}}// 测试示例public static void main(String[] args) {int[] arr = {1, 3, 5, 7, 9, 11};int x = 6;System.out.println("大于 " + x + " 的最小值: " + upperBound(arr, x)); // 输出 7System.out.println("大于等于 " + x + " 的最小值: " + lowerBound(arr, x)); // 输出 7System.out.println("小于 " + x + " 的最大值: " + floor(arr, x)); // 输出 5System.out.println("小于等于 " + x + " 的最大值: " + ceiling(arr, x)); // 输出 5}
}

方法 Arrays.binarySearch();

例题 P2249 【深基13.例1】查找 - 洛谷

题解

// @github https://github.com/Dddddduo
// @github https://github.com/Dddddduo/acm-java-algorithm
// @github https://github.com/Dddddduo/Dduo-mini-data_structure
import java.util.*;
import java.io.*;
import java.math.*;
import java.lang.*;
import java.time.*;/*** 题目地址**/// xixi♡西
public class Main {static IoScanner sc = new IoScanner();static final int mod = (int) (1e9 + 7);
//    static final int mod = (int) (1e9 + 7);//    static int n;
//    static int arr[];
//    static boolean visited[];
//    static ArrayList<ArrayList<Integer>> adj = new ArrayList<>();/*** @throws IOException*/private static void solve() throws IOException {// todoint n=sc.nextInt();int m=sc.nextInt();long arr[]=new long[n];for(int i=0;i<n;i++) {arr[i]=sc.nextLong();}StringBuilder sb=new StringBuilder("");for(int i=0;i<m;i++) {long target=sc.nextLong();int index = Arrays.binarySearch(arr, target);if (index >= 0) {while (index > 0 && arr[index - 1]==target) {index--;}} index+=1;if(index<1||index>n) {sb.append("-1 ");}else {sb.append(index+" ");}}dduoln(sb);}public static void main(String[] args) throws Exception {int t = 1;
//        t = sc.nextInt();while (t-- > 0) {solve();}}static <T> void dduo(T t) {System.out.print(t);}static <T> void dduoln() {System.out.println("");}static <T> void dduoln(T t) {System.out.println(t);}
}/*** IoScanner类** @author Dduo* @version 1.0* @description 通过IO流操作缓冲区减少了与底层输入输出设备的交互次数,旨在简化 Java 中的标准输入读取操作。*/
class IoScanner {BufferedReader bf;StringTokenizer st;BufferedWriter bw;public IoScanner() {bf = new BufferedReader(new InputStreamReader(System.in));st = new StringTokenizer("");bw = new BufferedWriter(new OutputStreamWriter(System.out));}public String nextLine() throws IOException {return bf.readLine();}public String next() throws IOException {while (!st.hasMoreTokens()) {st = new StringTokenizer(bf.readLine());}return st.nextToken();}public char nextChar() throws IOException {return next().charAt(0);}public int nextInt() throws IOException {return Integer.parseInt(next());}public long nextLong() throws IOException {return Long.parseLong(next());}public double nextDouble() throws IOException {return Double.parseDouble(next());}public float nextFloat() throws IOException {return Float.parseFloat(next());}public BigInteger nextBigInteger() throws IOException {return new BigInteger(next());}public BigDecimal nextDecimal() throws IOException {return new BigDecimal(next());}
}

二分答案模版

    	long left=0;long right=(long) 1e9;long mid=0;while(left<right) {mid =left+(right-left)/2;if(judge(mid)==true) {right = mid;}else {left = mid+1;}}dduoln(left);

相关文章:

算法竞赛相关 Java 二分模版

目录 找和目标值相关 方法 Arrays.binarySearch(); 二分答案模版 找和目标值相关 public class BinarySearchTemplate {// 查找大于 x 的最小值&#xff08;即严格上界&#xff09;public static int upperBound(int[] arr, int x) {int left 0, right arr.length;while (…...

如何使用远程桌面控制电脑

目的&#xff1a; 通过路由器使用pc控制台式机&#xff0c;实现了有线/无线pc与台式机的双向远程桌面控制 最核心就两条&#xff1a;get ip地址与被控制机器的账户与密码。 现象挺神奇&#xff1a;被控制电脑的电脑桌面处于休眠模式&#xff0c;此时强行唤醒被控电脑会导致中断…...

运行Spark程序-在shell中运行1

&#xff08;一&#xff09;分布式计算要处理的问题 【老师提问&#xff1a;分布式计算要面临什么问题&#xff1f;】 【老师总结】 分布式计算需要做到&#xff1a; 1.分区控制。把大的数据拆成一小份一小份的&#xff08;分区&#xff0c;分片&#xff09;让多台设备同时计算…...

多边形,矩形,长方体设置

在cesium中,我们可以通过既有的库来进行对地图的构建 // 向场景中添加一个几何体&#xff08;立方体&#xff09; scene.primitives.add(new Cesium.Primitive({// 定义几何体实例geometryInstances: new Cesium.GeometryInstance({// 使用BoxGeometry.fromDimensions方法创建…...

3.3 阶数的作用

第一步&#xff1a;引入背景与动机 在数学中&#xff0c;特别是在使用泰勒公式进行函数近似时&#xff0c;阶数的选择对结果的精度和适用范围有着重要影响。阶数越高&#xff0c;近似的精度通常也越高&#xff0c;但计算复杂度也会增加。因此&#xff0c;理解不同阶数的作用及…...

OAuth安全架构深度剖析:协议机制与攻防实践

目录 一、OAuth协议核心架构解析 1. 协议框架与核心组件 2. 授权流程类型对比 二、OAuth安全漏洞技术原理与攻击向量 1. 重定向URI劫持攻击 2. 令牌注入与滥用 3. 跨站请求伪造&#xff08;CSRF&#xff09; 三、纵深防御体系构建指南 1. 协议层加固 2. 工程化防护 3…...

关于网站提交搜索引擎

发布于Eucalyptus-blog 一、前言 将网站提交给搜索引擎是为了让搜索引擎更早地了解、索引和显示您的网站内容。以下是一些提交网站给搜索引擎的理由&#xff1a; 提高可见性&#xff1a;通过将您的网站提交给搜索引擎&#xff0c;可以提高您的网站在搜索结果中出现的机会。当用…...

一文理清人工智能,机器学习,深度学习的概念

目录 一、人工智能的起源与核心范畴&#xff08;1950-1980&#xff09; 1.1 智能机器的最初构想 1.2 核心范畴的初步分化 二、机器学习的兴起与技术分化&#xff08;1980-2010&#xff09; 2.1 统计学习的黄金时代 2.2 神经网络的复兴与子集定位 2.3 技术生态的形成与AI…...

MySQL 数据库:创建新数据库和数据表全攻略

MySQL 数据库&#xff1a;创建新数据库和数据表全攻略 在 MySQL 数据库管理中&#xff0c;创建新的数据库和数据表是基础且关键的操作。无论是开发新的应用程序&#xff0c;还是对现有数据进行整理和存储&#xff0c;都离不开这些操作。本文将详细介绍如何在 MySQL 中创建新数…...

React Native 与 Expo

&#x1f9e9; Expo 和 React Native 的关系 项目定义React Native一个由 Meta&#xff08;Facebook&#xff09;开发的原生移动端开发框架&#xff0c;使用 JavaScript React 来构建 iOS 和 Android 应用Expo一个构建在 React Native 之上的开发工具链&#xff0c;封装了很多…...

【RabbitMQ】七种工作模式介绍

文章目录 1. 简单模式2. 工作队列模式3. 发布订阅模式交换机类型 Publish/Subscribe 模式 4. Routing&#xff08;路由模式&#xff09;5. Topics&#xff08;通配符模式&#xff09;6. RPC&#xff08;RPC 通信&#xff09;7. Publisher Confirms&#xff08;发布确认&#xf…...

【C++进阶篇】二叉搜索树的实现(赋源码)

掌握二叉搜索树&#xff1a;从基础知识到实际应用的全貌 一. 二叉搜索树简介1.1 基本概念1.2 意义与价值1.3 典型应用场景1.4 性能分析1.5 总结与展望 二. 搜索二叉树实现2.1 插入2.2 查找2.3 删除2.3.1 单或无孩型2.3.2 双孩型2.3.4 整合代码 三. ⼆叉搜索树key和key/value使⽤…...

LLMs 其他 Trick

huggingface 下载不了模型问题&#xff1f; from modelscope.hub.snapshot_download import snapshot_download model_dir snapshot_download(damo/nlp_xlmr_named-entity-recognition_viet- ecommerce-title, cache_dirpath/to/local/dir, revisionv1.0.1) 方法一&#xff1…...

2025年金融创新、区块链与信息技术国际会议(FRCIT 2025 2025)

2025 International Conference on Financial Innovation, Regional Chains, and Information Technology &#xff08;一&#xff09;会议信息 会议简称&#xff1a;FRCIT 2025 大会地点&#xff1a;中国郑州 收录检索&#xff1a;提交Ei Compendex,CPCI,CNKI,Google Schola…...

rtty操作记录说明

rtty操作记录说明 前言 整理资料发现了几年前做的操作记录&#xff0c;分享出来&#xff0c;希望对大家有用。 rtty-master&#xff1a;rtty客户端程序&#xff0c;其中buffer\log\ssl为源码的子目录&#xff0c;从git上下载https://github.com/zhaojh329&#xff0c; rtty…...

股指期货是什么?有啥特点?怎么用?

股指期货&#xff0c;英文简称SPIF&#xff0c;全称是股票价格指数期货&#xff0c;也叫股价指数期货、期指。简单来说&#xff0c;它就是以股价指数为“赌注”的一种期货合约。想象一下&#xff0c;你和朋友打了个赌&#xff0c;约定在未来的某个日子&#xff0c;按照事先说好…...

提示词设计模板(基于最佳实践)

1. 任务清晰化 模糊指令 ➜ 明确指令 ❌ "写一篇关于环保的文章" ✅ *"列出5种城市环保措施&#xff0c;并分别说明其对减少碳排放的影响&#xff08;要求&#xff1a;数据支持案例&#xff09;"* 2. 任务步骤化 案例&#xff1a;策划线上营销活动 1.…...

涌现理论:连接万物的神秘力量

一、理论起源与概述 现象引介&#xff1a;通过蜂群“风浪”&#xff08;蜜蜂抖动翅膀呈波浪式扩散&#xff09;、鱿鱼变色捕猎等生物现象&#xff0c;引出涌现理论。理论定义&#xff1a;涌现理论可有效介入复杂问题&#xff0c;解释事物起源&#xff0c;适用于物理、化学、生…...

9.9 Ollama私有化部署Mistral 7B全指南:命令行交互到API集成全流程解析

Ollama私有化部署Mistral 7B全指南:命令行交互到API集成全流程解析 关键词:Ollama 私有化部署, Mistral 7B 运行, 本地大模型管理, 命令行交互, REST API 集成 一、Mistral 7B 模型特性解析 Mistral 7B 是由 Mistral AI 团队开发的高性能开源大语言模型,在同等参数量级模型…...

【Redis 进阶】缓存

思维导图&#xff1a; 1. 缓存的基本概念 1.1 缓存的实例化解释 以火车站刷身份证为例&#xff0c;身份证存放在皮箱中虽安全&#xff0c;但取用不便&#xff1b;而将其置于衣袋&#xff0c;则显著提高了访问效率。这一过程恰似计算机系统中缓存的运作机制——将常用数据暂存于…...

游戏资源传输服务器

目录 项目简介项目实现nginx配置服务器逻辑图 项目代码简介reactor 模型部分文件传输部分 项目演示视频演示演示分析 项目简介 使用C开发&#xff0c;其中资源存储在fastdfs 中&#xff0c;用户通过http上传或下载资源文件&#xff0c;此项目需要开启nginx中的nginx-upload-mod…...

dockerdesktop 重新安装

1、卸载 dockerdesktop 卸载时&#xff0c;最后一步删除镜像文件 会卡住 取消 2、在资源管理器中将镜像文件路径改名 如&#xff1a;e:\docker 修改 e:\docker1 3、重新安装wsl wsl --shutdown 以管理员身份运行hy.bat pushd "%~dp0" dir /b %SystemRoot%\servic…...

免费实用的远程办公方案​

假如你需要快速检索出远程电脑文件并下载&#xff1f; 假如你需要访问远程电脑的共享文件夹&#xff1f; 假如你需要访问远程电脑的USB设备&#xff0c;例如软件加密狗、调试器、固件烧录器、U盘等&#xff1f; 本篇文章能够解决以上痛点。 这个方案非常实用&#xff0c;也很…...

论文知识总结

参考1 一 Intelligent reflecting surface (IRS)跟RIS区别是什么 Intelligent Reflecting Surface (IRS) 和 Reconfigurable Intelligent Surface (RIS) 在很多情况下所指相同或相近&#xff0c;常被视为同一类技术的不同表述&#xff0c;但在一些特定语境下也有细微区别&…...

WebGIS 开发黑科技:解锁地理信息的新视界

你能想象吗&#xff1f;在我们生活的这个广袤星球上&#xff0c;每一处角落的地理信息&#xff0c;竟能通过网页&#xff0c;以超乎想象的方式呈现在眼前。WebGIS&#xff0c;这个看似神秘的词汇&#xff0c;实则是当下地理信息领域的 “黑科技”。它究竟有何神奇魔力&#xff…...

Postman启动时检测到版本不匹配错误

Postman启动时检测到版本不匹配错误&#xff0c;提示&#xff1a;Version mismatch detected. Looks like youve used a newer version of the Postman app on this system. 找到 C:\Users\AppData\Local\Postman C:\Users\AppData\Roaming\Postman 并删除现有的 postman 文件夹…...

Java Spring MVC -01

SpringMVC 是一种基于 的实现 MVC 设计模式的请求驱动类型的轻量级 Web 框架&#xff0c;属于 Spring FrameWork 的后续产品&#xff0c;已经融合在 Spring Web Flow 中。 First:SpringMVC-01-SpringMVC 概述 SpringMVC 是 Spring 框架的一个模块&#xff0c;用于构建 Web 应…...

遨游5G-A防爆手机:赋能工业通信更快、更安全

在工业数字化转型与5G-A商用进程加速的双重驱动下&#xff0c;中国防爆手机市场正迎来历史性发展机遇。作为“危、急、特”场景通信解决方案服务商&#xff0c;遨游通讯深刻洞察到&#xff1a;当5G-A网络以超高速率、海量连接和毫秒级时延重塑行业生态时&#xff0c;防爆手机这…...

MySQL 8.0 OCP 1Z0-908 51-60题

Q51.Examine this parameter setting: audit_logFORCE_LOG_PERMAENT What effect does this have on auditing? A)It will force the load of the audit plugin even in case of errors at server start.//插件在之前就必须加载完成&#xff0c;只有当插件之前通过 INSTALL PL…...

javax.servlet.Filter 介绍-笔记

1.javax.servlet.Filter 简介 javax.servlet.Filter 是 Java Servlet API 中的一个核心接口&#xff0c;用于在请求到达目标资源&#xff08;如 Servlet 或 JSP&#xff09;之前或响应返回给客户端之前执行预处理或后处理操作。它常用于实现与业务逻辑无关的通用功能&#xff…...

【2025年前端高频场景题系列】使用同一个链接,如何实现PC打开是web应用、手机打是-个H5 应用?

面试情境与问题引入 哈喽大家伙,我是布鲁伊。在前端开发面试中,面试官经常会抛出一些看似简单却能考察多方面能力的问题。"如何实现同一个链接在PC端和移动端展示不同应用?"就是这样一个典型问题。为什么面试官喜欢问这个问题?因为它能同时考察候选人的设备适配…...

GPT 经验

GPT 经验篇 一、gpt源码past_key_value是干啥的&#xff1f;二、gpt onebyone 每一层怎么输入输出&#xff1f;三、bert和gpt有什么区别四、文本生成的几大预训练任务&#xff1f;五、讲讲T5和Bart的区别&#xff0c;讲讲bart的DAE任务&#xff1f;六、讲讲Bart和Bert的区别&am…...

uniapp|实现获取手机摄像头权限,调用相机拍照实现人脸识别相似度对比,拍照保存至相册,多端兼容(APP/微信小程序)

基于uniapp以及微信小程序实现移动端人脸识别相似度对比,实现摄像头、相册权限获取、相机模块交互、第三方识别集成等功能,附完整代码。 目录 核心功能实现流程摄像头与相册权限申请权限拒绝后的引导策略摄像头调用拍照事件处理人脸识别集成图片预处理(Base64编码/压缩)调用…...

蓝桥杯13届国B 出差

题目描述 A、B、C、D四个人中要派两个人出差&#xff0c;按下述三个条件有几种安排方案&#xff0c;如何安排。 (1) 若A去&#xff0c;则C和D中要去一人。 (2) B和C不能都去。 (3) C去则D要留下。 输入描述 本题无输入。 输出描述 按字典序输出所有符合要求的安排方案&…...

论软件设计模式及其应用

三、正文 摘要 2023年 3 月&#xff0c;我所在的公司承接了某油企智慧加油站平台的建设工作。该项目旨在帮助加油站提升运营效率、降低运营成本和提高销售额。我在该项目中担任系统架构设计师&#xff0c;负责整个系统的架构设计工作。本文以该项目为例&#xff0c;详细论述了…...

实现 STM32 PWM 输出:原理、配置与应用详解

实现 STM32 PWM 输出&#xff1a;原理、配置与应用详解 在嵌入式开发领域&#xff0c;STM32 微控制器凭借其强大的功能和丰富的外设资源&#xff0c;被广泛应用。PWM&#xff08;脉冲宽度调制&#xff09;作为 STM32 的重要功能之一&#xff0c;对于电机调速、LED 调光、信号合…...

优艾智合机器人助力半导体智造,领跑国产化替代浪潮

在全球半导体产业加速自动化转型的背景下&#xff0c;传统物流已成为制约智能化升级的关键瓶颈。作为中国移动机器人行业的领军企业&#xff0c;优艾智合&#xff08;YOUIBOT&#xff09;自2017年起就敏锐洞察到"半导体设备国产化"的紧迫需求&#xff0c;依托在工业移…...

Pytorch张量和损失函数

文章目录 张量张量类型张量例子使用概率分布创建张量正态分布创建张量 (torch.normal)正态分布创建张量示例标准正态分布创建张量标准正态分布创建张量示例均匀分布创建张量均匀分布创建张量示例 激活函数常见激活函数 损失函数(Pytorch API)L1范数损失函数均方误差损失函数交叉…...

【RabbitMQ】工作队列和发布/订阅模式的具体实现

文章目录 建立连接工作队列模式实现创建队列和交换机生产者代码消费者代码运行程序启动消费者启动生产者 发布/订阅模式实现创建队列和交换机生产者代码创建交换机声明两个队列绑定队列和交换机发送消息完整代码 消费者代码完整代码 运行程序启动生产者启动消费者 建立连接 我…...

loki grafana 页面查看 loki 日志偶发 too many outstanding requests

问题描述 grafana 页面查看 loki 日志偶然出现 too many outstanding requests loki pod 日志报错 levelerror ts2025-05-13T06:15:52.509738812Z callerscheduler_processor.go:158 org_idfake traceID1570d49e6d15b25c msg"error notifying scheduler about finished …...

Python之with语句

文章目录 Python中的with语句详解一、基本语法二、工作原理三、文件操作中的with语句1. 基本用法2. 同时打开多个文件 四、with语句的优势五、自定义上下文管理器1. 基于类的实现2. 使用contextlib模块 六、常见应用场景七、注意事项 Python中的with语句详解 with语句是Python…...

tomcat搭建内网论坛

准备工作&#xff1a; 准备jdk-8u291-linux-x64.tar.gz压缩包与apache-tomcat-9.0.16.tar.gz压缩包。 jdk安装&#xff1a; tar xf jdk-8u291-linux-x64.tar.gz -C /usr/local/ cd /usr/local/ ln -s jdk1.8.0_291/ jdk vim /etc/profile.d/jdk.sh cat /etc/profile.d/jdk.s…...

基于开源AI大模型AI智能名片S2B2C商城小程序的零售结算技术创新研究——以京东AI与香港冯氏零售集团智能结算台为例

摘要&#xff1a;本文以京东AI与香港冯氏零售集团共同打造的人工智能结算台为切入点&#xff0c;结合开源AI大模型、AI智能名片及S2B2C商城小程序的技术特性&#xff0c;深入探讨其在零售结算领域的创新应用。研究发现&#xff0c;开源AI大模型为智能结算提供了强大的图像识别与…...

supabase 怎么新建项目?

在 Supabase 中新建项目主要通过官方网站的仪表盘 (Dashboard) 来完成。以下是详细步骤&#xff1a; 通过 Supabase 仪表盘新建项目&#xff1a; 注册/登录 Supabase 账户&#xff1a; 访问 Supabase 官网&#xff1a;https://supabase.com/如果你还没有账户&#xff0c;点击 …...

框架篇八股(自用)

框架篇 Spring框架中的bean不是线程安全的 Scope&#xff08;&#xff09; singleton单例 prototype多例 一个类中有可修改的成员变量需要考虑线程安全 bean没有可变状态&#xff08;service类&#xff0c;DAO类&#xff09; 某种程度单例bean是线程安全的 AOP面向切面编程…...

Flask Docker Demo 项目指南

首先&#xff0c;创建一个新的项目目录并创建必要的文件&#xff1a; mkdir flask-docker-demo cd flask-docker-demo创建一个简单的Flask应用 (app.py)&#xff1a; from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return Hello, Docker World…...

蓝卓AI智能体平台

在数字化浪潮席卷全球的今天&#xff0c;制造业企业正面临前所未有的挑战&#xff1a;如何将海量数据转化为精准决策&#xff1f;如何让传统生产流程具备“自进化”的智能&#xff1f;如何打破数字化与智能化之间的鸿沟&#xff1f;蓝卓数字科技凭借对工业场景的深刻理解&#…...

typedef unsigned short uint16_t; typedef unsigned int uint32_t;

你提到的这两行是 C/C 中的类型别名定义&#xff1a; typedef unsigned short uint16_t; typedef unsigned int uint32_t;它们的目的是让代码更具可读性和可移植性&#xff0c;尤其在处理精确位数的整数时非常有用。 ✅ 含义解释 typedef unsigned short uint16_t;…...

黑马k8s(五)

1.Namespace 2.Pod run nginx&#xff1a;nginx是pod控制器的名称&#xff0c;不是pod的名称 查看pod更高的参数&#xff1a; 启动一个不存在的镜像&#xff1a;pod 查看 dev下面的pod&#xff0c;第二个pod处于容器创建的状态 查看pod的详情描述&#xff1a; 通过pod的ip&…...

进程间通信分类

前提&#xff1a; 进程具有独立性&#xff0c;要通信就是要让它们&#xff1a;看到同一份资源&#xff08;某种形式的内存空间&#xff0c;操作系统提供&#xff09; 本地通信&#xff1a;同一台主机&#xff0c;OS&#xff0c;用系统调用通信。标准&#xff1a;systemV。 S…...