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

【练习】二分查找

1、704

(1)题目描述

(2)代码实现

package com.hh.practice.leetcode.array.demo_02;public class BinarySearch_704 {public int search(int[] nums, int target) {int i= 0,j = nums.length -1;while (i <= j){int mid = (i+j) >>> 1;if (target < nums[mid]){j = mid - 1;} else if (nums[mid] < target) {i = mid + 1;}else {return mid;}}return -1;}//方式一
//    public int search(int[] nums, int target) {
//        for(int i = 0; i < nums.length; i++){
//            if(target == nums[i]){
//               return i;
//            }
//        }
//        return -1;
//    }
}

2、35

(1)题目描述

(2)代码实现

package com.hh.practice.leetcode.array.demo_02;public class BinarySearch_35 {//方式二public static int searchInsert(int[] arr, int key) {int i = 0;int j = arr.length - 1;while (i <= j) {int mid = (i + j) >>> 1;if (key <= arr[mid]) {j = mid - 1;} else{i = mid + 1;}}return i;}//方式一
//    public int searchInsert(int[] nums, int target) {
//        int low = 0;
//        int high = nums.length - 1;
//
//        while (low <= high) {
//            int mid = (low + high) >>> 1;
//            int midVal = nums[mid];
//
//            if (midVal < target)
//                low = mid + 1;
//            else if (midVal > target)
//                high = mid - 1;
//            else
//                return mid; // target found
//        }
//        //没找到就返回插入点,
//        return low;  // target not found.
//    }
}

3、34

(1)题目描述‘

(2)代码实现

package com.hh.practice.leetcode.array.demo_02;public class BinarySearch_34 {public int[] searchRange(int[] nums, int target) {int[] arr = new int[2];arr[0] = binaryLeft(nums,target);if (arr[0] == -1){arr[1] = -1;} else {arr[1] = binaryRight(nums, target);}return arr;}/*返回最靠左的元素索引*/public int binaryLeft(int[] arr, int key) {int i = 0;int j = arr.length - 1;int candidate = -1;while (i <= j) {int mid = (i + j) >>> 1;if (key < arr[mid]) {j = mid - 1;} else if (key > arr[mid]) {i = mid + 1;} else {candidate = mid;j = mid -1;}}return candidate;}/*返回最靠右的元素索引*/public int binaryRight(int[] arr, int key) {int i = 0;int j = arr.length - 1;int candidate = -1;while (i <= j) {int mid = (i + j) >>> 1;if (key < arr[mid]) {j = mid - 1;} else if (key > arr[mid]) {i = mid + 1;} else {candidate = mid;i = mid +1;}}return candidate;}
}

 


 

本文为学习笔记,所参考文章均已附上链接,若有疑问请私信!

创作不易,如果对你有点帮助的话麻烦点个赞支持一下!

新手小白,欢迎留言指正!

相关文章:

【练习】二分查找

1、704 &#xff08;1&#xff09;题目描述 &#xff08;2&#xff09;代码实现 package com.hh.practice.leetcode.array.demo_02;public class BinarySearch_704 {public int search(int[] nums, int target) {int i 0,j nums.length -1;while (i < j){int mid (ij) &…...

FactoryTalk View 上位机画面版本升级,还原和备份

FactoryTalk View 上位机画面版本升级,还原和备份 1 归档文件(尾缀.apa)升级2 画面文件(尾缀.sed)升级3 提示“目标工程中包含旧的HMI标签报警,FT View 10.0是最后一个......” 解决方法1 归档文件(尾缀.apa)升级 案例是FTVIEW5.0升级到FT VIEW12,需要用FT VIEW 6过渡升…...

【微信小程序】分包

整个小程序所有分包大小不超过 20M&#xff08;开通虚拟支付后的小游戏不超过30M&#xff09; 单个分包/主包大小不能超过 2M在小程序启动时&#xff0c;默认会下载主包并启动主包内页面&#xff0c;当用户进入分包内某个页面时&#xff0c;客户端会把对应分包下载下来&#xf…...

Golang教程六(单元测试,反射,网络编程,部署)

目录 一、单元测试 单元测试 子测试 TestMain 二、反射 类型判断 通过反射获取值 通过反射修改值 结构体反射 利用tag修改结构体的某些值 调用结构体方法 orm的一个小案例 对反射的一些建议 三、网络编程 socket编程 websocket编程 四、部署 打包命令 交叉编译…...

mybatis进阶篇-执行CRUD操作-typeAliases别名-接口绑定

目录结构 1.创建数据表&#xff08;book&#xff09; # 创建book表 create table book(id int auto_increment primary key,name varchar(255) ,price double ,num int );2.mybatis.xml配置文件 <?xml version"1.0" encoding"UTF-8" ?> <!DOC…...

C#面:泛型的主要约束和次要约束是什么

在 C# 中&#xff0c;泛型的约束是用来限制泛型类型参数的行为和能力的。 主要约束和次要约束是两种不同的约束方式。 主要约束&#xff08;Primary Constraint&#xff09;&#xff1a; 主要约束指定了泛型类型参数必须满足的最基本的条件&#xff0c;它可以是一个类、一个接…...

Java使用documents4j将word和excel转pdf

pom.xml添加documents4j依赖 <!-- documents4j --> <dependency><groupId>com.documents4j</groupId><artifactId>documents4j-local</artifactId><version>1.0.3</version> </dependency> <!-- documents4j 转 wor…...

使用策略模式实现 Spring 分布式和单机限流

我们可以使用策略模式来统一单机限流和分布式限流的实现,提高代码的可扩展性和可维护性。 思路是定义一个 RateLimitStrategy 接口,并分别实现单机限流策略 LocalRateLimitStrategy 和分布式限流策略 DistributedRateLimitStrategy。在 AOP 切面中,根据配置决定使用哪种限流策…...

@CrossOrigin注解解决跨域问题

文章目录 一、什么是跨域二、CrossOrigin注解是干什么用的三、用法 一、什么是跨域 跨域&#xff0c;指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的&#xff0c;是浏览器对JavaScript施加的安全限制。 所谓同源是指&#xff0c;域名&#xff0c;协议&…...

【力扣】45. 跳跃游戏 II

Problem: 45. 跳跃游戏 II 文章目录 问题思路复杂度Code 问题 思路 核心思路&#xff0c;例如nums[i]5&#xff0c;那么最远能跳五步&#xff1b; //那么在这接下来1-5范围内&#xff0c;哪个能让我跳的最远&#xff0c;这个最远指的是 -------------------------------------…...

【Python基础】19.eval函数的使用

eval函数 eval()将字符串转变为有效的表达式来求值并返回对应的结果 基础数据计算 In [1]: eval("1 1") Out[1]: 2字符串重复 In [2]: eval (" * * 10") Out[2]: **********字符串转为列表 In [3]: type(eval("[1,2,3,4,5]")) Out[3]: lis…...

对装饰器模式的理解

目录 一、场景二、面对场景中的新需求&#xff0c;我们怎么办&#xff1f;1、暴力法&#xff1a;直接修改原有的代码。2、子类继承法&#xff1a;既然要增强行为&#xff0c;那我搞一个子类&#xff0c;覆写不就完事了&#xff1f;3、装饰器模式 三、对装饰器模式的思考1、从代…...

在替换微软AD的CA证书服务AD CS前,要先做哪些准备工作?

AD CS是什么 关于这个问题&#xff0c;有几个概念需要先弄明白&#xff1a;PKI、CA、数字证书。 PKI&#xff08;Public Key Infrastructure&#xff0c;公钥基础设施&#xff09;是提供公钥加密和数字签名服务的系统或平台&#xff0c;实现基于公钥密码体制的密钥和证书的产生…...

Java中的System

文章目录 概要小结 概要 在Java中&#xff0c;System类提供了一些静态方法来实现与系统相关的操作。以下是System类中常用的方法及其含义&#xff1a; System.currentTimeMillis()&#xff1a;返回当前时间&#xff08;以毫秒为单位&#xff09;自1970年1月1日00:00:00 GMT以来…...

Mybites一对多collection

Goods实体属性&#xff1a; private List<GoodsImg> goodsImgList; private String id; private String name; GoodsImg实体属性&#xff1a; private String id; private String fid; private String imgpath; …...

基于springboot实现图书进销存管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现图书进销存管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了图书进销存管理系统的开发全过程。通过分析图书进销存管理系统管理的不足&#xff0c;创建了一个计算机管理图书进销…...

敏捷开发:想要快速交付就必须舍弃产品质量?

随着敏捷的推广与应用&#xff0c;如今已经成为了最有效的团队级别的方法论&#xff0c;越来越多的软件和 IT 团队正在采用敏捷&#xff0c;但是你在敏捷吗&#xff1f; 自从那一群充满影响力的软件从业者聚集在一起并发布了《敏捷宣言》以来&#xff0c;已经过去了 23 年。敏…...

SNMP-详解指南

目录 SNMP介绍 SNMP的工作机制轮询 SNMP的MIB&#xff08;管理信息库&#xff09; SNMP是基于UDP协议 SNMP介绍 SNMP&#xff08;Simple Network Management Protocol&#xff0c;简单网络管理协议&#xff09;是一种广泛应用于互联网上的网络管理协议。它提供了一种标准化…...

vue-router 原理【详解】hash模式 vs H5 history 模式

hash 模式 【推荐】 路由效果 在不刷新页面的前提下&#xff0c;根据 URL 中的 hash 值&#xff0c;渲染对应的页面 http://test.com/#/login 登录页http://test.com/#/index 首页 核心API – window.onhashchange 监听 hash 的变化&#xff0c;触发视图更新 window.onhas…...

WebGl/Three 粒子系统 人物破碎及还原运动

粒子 首先&#xff0c;加载模型&#xff0c;这是万千粒子的前身&#xff0c;模型对象由很多面构成&#xff0c;这些面又是由各个点构成的&#xff0c;所以可以将模型的几何体对象geometry赋给粒子对象&#xff0c;粒子物体用Points方式渲染 bloader.load("obj/female02/Fe…...

AXI协议深度解析:从握手到低功耗,一次搞懂芯片内部数据流的那些“潜规则”

AXI协议深度解析&#xff1a;从握手到低功耗&#xff0c;一次搞懂芯片内部数据流的那些“潜规则” 在当今高性能计算和复杂SoC设计中&#xff0c;AXI协议已成为连接处理器、存储器和外设的黄金标准。但真正理解AXI的精髓&#xff0c;远不止于掌握基础操作——那些隐藏在规范字里…...

FlareLine Flutter:开源跨平台管理后台模板开发与部署指南

1. 项目概述&#xff1a;一个为现代应用而生的Flutter仪表盘模板如果你正在寻找一个能快速启动你的下一个Web、Android或iOS项目后台管理界面的方案&#xff0c;并且希望这个方案足够现代、功能齐全&#xff0c;同时又能让你完全掌控代码&#xff0c;那么FlareLine Flutter这个…...

扩散模型如何重塑建筑设计流程:从概念生成到性能优化的AI协作

1. 项目概述&#xff1a;当AI成为建筑师的“副驾驶”几年前&#xff0c;当我在设计院通宵达旦地对着屏幕调整一个曲面屋顶的参数时&#xff0c;我就在想&#xff0c;有没有一种工具&#xff0c;能让我把脑子里那个模糊的意象&#xff0c;瞬间变成可供推敲的视觉草稿&#xff1f…...

AD导出Gerber到CAM350拼板全流程避坑指南(附文件漏导出自查清单)

AD导出Gerber到CAM350拼板全流程避坑指南&#xff08;附文件漏导出自查清单&#xff09; 在硬件产品开发中&#xff0c;PCB设计到生产的转换环节往往隐藏着诸多"暗礁"。我曾亲眼见过一个团队因为钻孔文件覆盖问题导致生产延误两周&#xff0c;损失近十万元。本文将分…...

多语言AI Agent的构建:跨语言理解与任务执行

多语言AI Agent的构建:跨语言理解与任务执行 本文面向有一定大模型应用开发基础的工程师,从原理、架构、实战三个维度完整讲解可落地的多语言AI Agent构建方案,全文约11000字,代码可直接运行。 引言 痛点引入 你是否遇到过这些场景? 运营跨境电商平台时,每个语言站点要…...

LoRa模块信号弱?可能是你的“射频快递”堵车了:深入Sx1262前端电路的信号处理流水线

LoRa模块信号弱&#xff1f;可能是你的“射频快递”堵车了&#xff1a;深入Sx1262前端电路的信号处理流水线 想象一下&#xff0c;你精心打包的快递包裹在运输途中被随意堆放、地址模糊不清&#xff0c;最终导致收件人无法正常签收——这正是许多LoRa模块信号问题的真实写照。当…...

jQuery WeUI移动端UI组件库架构解析与实现原理深度指南

jQuery WeUI移动端UI组件库架构解析与实现原理深度指南 【免费下载链接】jquery-weui 由于前端业界早已以React/Vue/Angular为主&#xff0c;个人也多年未使用过jQuery&#xff0c;此仓库已不再维护。推荐大家尽快转向 AntD、Element等更先进的UI库&#xff0c;https://ant.des…...

Midjourney Basic计划真实体验:7天高强度测试+37组对比图,揭示隐藏限制与生产力断层

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney Basic计划真实体验&#xff1a;7天高强度测试37组对比图&#xff0c;揭示隐藏限制与生产力断层 过去一周&#xff0c;我以全职创作者身份深度使用 Midjourney Basic 计划&#xff08;$10/月…...

MathType 快捷键实战指南——数学建模效率飙升的秘诀(从入门到精通)

1. 为什么你需要掌握MathType快捷键&#xff1f; 如果你经常需要处理数学公式&#xff0c;肯定遇到过这样的场景&#xff1a;为了输入一个简单的积分符号&#xff0c;不得不从工具栏里翻找半天&#xff1b;调整公式对齐时反复用鼠标拖动&#xff1b;修改矩阵维度时逐个单元格调…...

基于RAG与MCP协议构建实时新闻AI助手:newsmcp项目实战解析

1. 项目概述&#xff1a;一个让AI“读新闻”的智能工具最近在折腾AI应用开发的朋友&#xff0c;可能都绕不开一个核心问题&#xff1a;如何让大语言模型&#xff08;LLM&#xff09;获取并理解最新的、模型训练数据之外的信息&#xff1f;比如&#xff0c;你想让ChatGPT帮你分析…...