2025年- H62-Lc170--34.在排序数组中查找元素的第一个和最后一个位置(2次二分查找,标记向左寻找,标记向右寻找)--Java版

article/2025/6/24 8:35:06

1.题目描述

在这里插入图片描述

2.思路

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

3.代码实现

public class H34 {public int[] searchRange(int[] nums, int target) {int start = findFirst(nums, target);int end = findLast(nums, target);return new int[]{start, end};}// 查找第一个出现的位置public int findFirst(int[] nums, int target) {int left = 0;int right = nums.length-1;int res = -1;//“这个值在数组中不存在,没有对应的下标。”默认值返回-1while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] == target) {res = mid;right = mid - 1;//向右继续查找,你不确定这是不是第一个 8,还可能在它左边还有 8!所以,为了“继续向左边找”,我们要缩小右边界:} else if (target > nums[mid]) {left = mid + 1;} else{right = mid - 1;}}return res;}// 查找最后一个出现的位置public int findLast(int[] nums, int target) {int left = 0;int right = nums.length-1;int res = -1;while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] == target) {res = mid;//因为这是右边区间,所以我们要往左边找还有没有该元素出现left = mid + 1;} else if (target > nums[mid]) {left = mid + 1;} else {right = mid - 1;}}return res;}public  static void main(String[] args){H34 test=new H34();int[] nums={5,7,7,8,8,10};int target=10;int[] res=test.searchRange(nums,target);System.out.print("["+res[0]+","+res[1]+"]");}
}

http://www.hkcw.cn/article/CobcgvnRTT.shtml

相关文章

VR/AR 显示瓶颈将破!铁电液晶技术迎来关键突破

在 VR/AR 设备逐渐走进大众生活的今天&#xff0c;显示效果却始终是制约其发展的一大痛点。纱窗效应、画面拖影、眩晕感…… 传统液晶技术的瓶颈让用户体验大打折扣。不过&#xff0c;随着铁电液晶技术的重大突破&#xff0c;这一局面有望得到彻底改变。 一、传统液晶技术瓶颈…

基于空天地一体化网络的通信系统matlab性能分析

目录 1.引言 2.算法仿真效果演示 3.数据集格式或算法参数简介 4.MATLAB核心程序 5.算法涉及理论知识概要 5.1 QPSK调制原理 5.2 空天地一体化网络信道模型 5.3 空天地一体化网络信道特性 6.参考文献 7.完整算法代码文件获得 1.引言 空天地一体化网络是一种将卫星通信…

基于FashionMnist数据集的自监督学习(生成式自监督学习AE算法)

目录 一&#xff0c;生成式自监督学习 1.1 简介 1.2 核心思想 1.3 常见算法 1.3.1 自动编码器&#xff08;Autoencoder&#xff09; 1.3.2 生成对抗网络&#xff08;GANs&#xff09; 1.3.3 变分自编码器&#xff08;VAE&#xff09; 1.3.4 Transformer-based 模型&…

腾讯位置商业授权关键词输入提示开发指南

概述 用于获取输入关键字的补完与提示&#xff0c;帮助用户快速输入。本接口为纯HTTP数据接口&#xff0c;需配合前端程序实现Autocomplete&#xff08;自动完成&#xff09;的效果。 请求URL 该请求为GET请求 https://apis.map.qq.com/ws/place/v1/suggestion 请求参数 名称必…

【愚公系列】《生产线数字化设计与仿真》006-颜色分类站仿真(配置颜色分类站的气缸和传送带)

&#x1f31f;【技术大咖愚公搬代码&#xff1a;全栈专家的成长之路&#xff0c;你关注的宝藏博主在这里&#xff01;】&#x1f31f; &#x1f4e3;开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主&#xff01; &#x1f…

企业内训|客户智能营销实战——某头部车企

5月下旬&#xff0c;TsingtaoAI团队为某央企汽车厂商的智能驾驶业务运营团队交付“客户智能营销实战”课程。 本课程聚焦AI技术与汽车营销的深度融合&#xff0c;以“数据驱动大模型赋能”为核心&#xff0c;系统拆解智能营销全链路。课程从行业痛点切入&#xff0c;结合最新趋…

Mybatis-Plus简单介绍

前一篇文章中&#xff0c;小编介绍到了Mybatis&#xff0c;以及它的增强工具&#xff0c;mybatis-generator。 那么为了再减少对于SQL语句的编写&#xff0c;那么mybatis的另一个增强工具也是做出了巨大努力。 Mybaits-Plus Mybatis-Plus简称MP&#xff0c;它是一个Mybatis的…

LLm中 float16和 float32 区别,为什么训练不能采用float16--梯度消失

LLm中 float16和 float32 区别,为什么训练不能采用float16–梯度消失 在深度学习中,使用 float16(半精度)而非 float32(单精度)进行训练时,数值范围和精度的差异可能导致一系列问题,特别是当损失值达到 0.0001 这种较小时。以下是具体分析: 1. float16 与 float32 的…

Vue2之2组件通信

文章目录 什么是组件通信不同的组件关系 和 组件通信方案分类组件关系分类&#xff1a;组件通信方案分类 父子通信流程图&#xff1a;父传子子传父非父子通信 (拓展) - event bus 事件总线非父子通信 (拓展) - provide & inject 深入学习prop属性prop接收多个值props 是只读…

Qt -下载Qt6与OpenCV

博客主页&#xff1a;【夜泉_ly】 本文专栏&#xff1a;【暂无】 欢迎点赞&#x1f44d;收藏⭐关注❤️ 前言 呃啊&#xff0c;本来就想在 Qt 里简单几个 OpenVC 的函数&#xff0c;没想到一搞就是一天。 我之前的开发环境是 Qt 5.14.2&#xff0c;使用 MinGW 7.3.0 64-bit 编…

8088单板机C语言sprintf()格式化串口输出---Prj04

#include "tiny_stdarg.h" // 使用自定义可变参数实现#define ADR_273 0x0200 #define ADR_244 0x0400 #define LED_PORT 0x800 #define PC16550_THR 0x1f0 #define PC16550_LSR 0x1f5 / //基本的IO操作函数 / char str[]"Hello World! 20250531 Ve…

HTML实现端午节主题网站:龙舟争渡,凭吊祭江诵君赋。

名人说&#xff1a;龙舟争渡&#xff0c;助威呐喊&#xff0c;凭吊祭江诵君赋。——苏轼《六幺令天中节》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、项目概览&#xff1a;传统与现代的技术碰撞1. 核心特…

YOLOv10改进|爆改模型|涨点|在颈部网络添加结合部分卷积PConv和SDI融合方法的PSDI特征融合层(附代码+修改教程)

一、文本介绍 本文修改的模型是YOLOv10&#xff0c;YOLOv10无需非极大值抑制&#xff08;NMS&#xff09;进行后处理&#xff0c;其推理速度以及参数量上都优于现有的模型。然而&#xff0c;针对某些目标检测任务中需要同时处理多尺度目标的挑战&#xff0c;YOLOv10 在此类场景…

Redis最佳实践——安全与稳定性保障之高可用架构详解

全面详解 Java 中 Redis 在电商应用的高可用架构设计 一、高可用架构核心模型 1. 多层级高可用体系 #mermaid-svg-Ffzq72Onkv7wgNKQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Ffzq72Onkv7wgNKQ .error-icon{f…

虚拟存储器:将十六进制逻辑地址 0A5C、103C、1A5C 转换成物理地址(2)

转换成十进制&#xff08;分步骤解析&#xff09; 确定页号和偏移的计算方式 页大小1KB 2^10&#xff0c;逻辑地址中 页号 逻辑地址 1024&#xff08;整数除法&#xff09;&#xff0c;页内偏移 逻辑地址 % 1024。物理地址 物理块号 1024 页内偏移&#xff0c;其中物理块…

【HTML】基础学习【数据分析全栈攻略:爬虫+处理+可视化+报告】

- 第 102 篇 - Date: 2025 - 05 - 31 Author: 郑龙浩/仟墨 文章目录 HTML 基础学习一 了解HTML二 HTML的结构三 HTML标签1 标题2 文本段落3 换行4 加粗、斜体、下划线5 插入图片6 添加链接7 容器8 列表9 表格10 class类 HTML 基础学习 一 了解HTML 一个网页分为为三部分&…

吴恩达MCP课程(2):research_server

目录 代码代码解释导入模块常量定义MCP服务器初始化工具函数定义1. search_papers 函数2. extract_info 函数 主程序总结 运行示例 代码 import arxiv import json import os from typing import List from mcp.server.fastmcp import FastMCPPAPER_DIR "papers"mc…

【数据结构】——二叉树--链式结构

一、实现链式结构二叉树 二叉树的链式结构&#xff0c;那么从名字上我们就知道我们这个二叉树的底层是使用链表来实现的&#xff0c;前面我们的二叉树是通过数组来实现的&#xff0c;那么在其是完全二叉树的情况下&#xff0c;此时我们使用数组来实现就会使得其空间浪费较少&a…

netty中的EventLoop原理解析

一起来学netty 1. EventLoop的基本概念2. EventLoop的核心组件3. EventLoop的工作流程4. EventLoop与Channel的关系5. EventLoop的实现类6. EventLoop的线程模型7. EventLoop的优点8. EventLoop的注意事项9. 示例代码10.异步编程模型解析异步编程的定义异步编程的核心特点异步编…

使用Java实现简单的计算机案例

第一个案例我决定做一个简单的“简易计算器”&#xff0c;来开启编程之旅。为什么我会选择这个案例来作为第一个Java案例呢&#xff1f;大家可别小看这个小小的计算器&#xff0c;它既简单又实用。通过这个案例&#xff0c;大家可以学会或着练习如何处理用户输入、如何实现基本…