首页/新闻资讯/正文详情

每题一日❌每日一题✔之LeetCode56合并区间(java版)

发布时间:2026/9/25 21:39:33 来源:云帆数科 栏目:资讯中心
每题一日❌每日一题✔之LeetCode56合并区间(java版)
这道题的大概意思是给定若干个区间合并重叠的区间这个区间其实就是个一维数组,长这样比如[2,3]就表示2为左边界3为右边界的闭区间输入篇输入格式41 32 68 1015 18先输入一个数字表示要输入多少个区间然后输入区间每个区间换一次行就这样我们的输入思路就可以想好了首先输入readLine读区间数量n,然后再跑n次循环把每个区间读进去用二维数组来存储这些区间代码import java.io.*; import java.util.*; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br new BufferedReader(new InputStreamReader(System.in); int n Integer.parseInt(br.readLine().trim()); StringTokenizer st; int[][] seg new int[n][2];//每个区间存两个数字 for(int i 0; i n; i){ st new StringTokenizer(br.readLine()); seg[i][0] Integer.parseInt(st.nextToken()); seg[i][1] Integer.parseInt(st.nextToken()); } //...balabala(后续逻辑代码) } }给萌新的留言为什么用BufferedReader不用Scanner,很简单因为Scanner他慢。Scanner的nextInt等等方法底层都是基于正则表达式来匹配和切割的CPU开销大慢BufferedReader只做纯字符流读取快。StringTokenizer呢就是负责切割这个我们BufferedReader读到的字符串把他们按空格换行符制表符\t)等切割我们BufferedReader读到一行字符串的时候交给我们StringTokenizer只要使用nextToken,他就能立即给你切到下一个token块比如读到的字符串是1 2 3,你使用nextToken他给你返回字符串1再用一次返回2再用一次返回 3。非常方便输入的内容是数组一般就用它来切割读数字。如果输入的是字符串可以直接用BufferedReader,br.readLine()就能返回那一行的字符串。对于一行只有一个数字比如数组类型的题目一般输入会先给数组的长度n再给数组本体我们要直接处理 输入的 一维数组的长度n使用Integer.parseInt(br.readLine().trim())就能快速获取(这里之所以用trim是因为有的神人输入会在一行的数字后面多打一个空格算法解决篇思路要解决这道题目关键要弄清楚遍历这个二维数组区间集合什么时候有重叠需要合并什么时候不该合并没有重叠。合并 的条件是有区间[a,b],和区间 [c,d],假如a c 那么 c 必须小于等于b.他们才可能有重叠项我们的思路就简单多了首先对区间集合这个二维数组按照左边界做从小到大从大到小也一样反过来思路这个你自己试一个排序这样遍历区间一定是的顺序一定有先遍历的区间的左边界小于等于后遍历的左左边界这样只需要比较后续的区间的左边界的大小如果后遍历的区间的左区间小于等于前面的右边界那就有重叠可以合并合并之后的右边界就是他们右边界的最大值。否则不能合并算进新区间。代码Listint[] res new ArrayList(); for(int[] s : seg){ if(!res.isEmpty() res.get(res.size()-1)[1] s[0]){ res.get(res.size()-1)[1] Math.max(res.get(res.size()-1)[1],s[1]); }else{ res.add(s); } }补充说明为什么使用res的最后一个res.get(res.size()-1)作为比较依据。因为遍历的顺序是左边界从小到大res的顺序也是左边界从小到大对于res的结果他会add的只有两个完全没有重叠的后一个数组的左边界比前一个数组的右边界还大的。比如res是{[1,2],[3,4]},后面遍历的肯定是[4,5],[5,6]之类的[3,4]的左边界都比[1,2]的大了完全没有比较肯定左边界比他大的后续遍历的[4,5][5,6]之类的跟前面的res的区间[1,2]比较的必要。他的最后一个区间肯定是现有的右区间最大的输出篇预期输出格式1 68 1015 18即每个区间换行一次每行只有一个区间的左右边界元素也就是一个数组思路输出的思路很简单使用StringBuilder遍历res拼接字符串即可两个数字之间加一个空格每行之后加一个换行符StringBuilder sb new StringBuilder(); for(int[] s : res){ sb.append(s[0]).append( ).append(s[1]).append(\n) } System.out.print(sb);注意事项因为我们给每行都打了换行符所以这里不需要输出再写一个println,否则末尾就有两个\n了平时我们输出一维数组的时候一般是这样for(int x : a) sb.append(x).append( )即每两个数字之间有一个空格这样我们的末尾输出也有一个空格输出的时候就可以通过System.out.println(sb.toString().trim())来防止最后多输出一个空格。这里没有加换行符就用的println)

相关推荐

论文阅读 IOT 2025 Fast and Controllable Bias-Guided Jailbreak Attack on Large Language Models
论文阅读 IOT 2025 Fast and Controllable Bias-Guided Jailbreak Attack on Large Language Models

总目录 大模型安全研究论文整理 2026年版:https://blog.csdn.net/WhiffeYF/article/details/159047894 https://ieeexplore.ieee.org/document/11126090 https://ieeexplore.ieee.org/stamp/stamp.jsp?tp&arnumber11126090 Fast and Controllable Bias-Guid… · 2026/9/25 21:39:27

Linux系统编程之通用I/O模型
Linux系统编程之通用I/O模型

目录简介通用I/O示例代码copy.c编程思路简介 上次我们简单介绍了一下Linux系统编程的环境搭建,这篇开始正式走进Linux系统编程的篇章。我们之前介绍操作系统的时候说过,无非是为了更好控制硬件才选择开发操作系统,人与硬件的交互无非就是人输… · 2026/9/25 21:39:20

macOS HP打印机连接故障排查:从发现失败到IPP手动添加
macOS HP打印机连接故障排查:从发现失败到IPP手动添加

1. 为什么 macOS 上装 HP 打印机比 Windows 更让人抓狂? 你刚把新买的 HP LaserJet Pro M203dw 拆箱,MacBook Pro 已经连上同一 Wi-Fi,打开「系统设置」→「打印机与扫描仪」,点击左下角「」号——结果空白一片,连个设… · 2026/9/25 21:39:14

阿里 open-code-review (AI代码审查工具)实战:安装、四层规则链、自定义规则格式与实测避坑
阿里 open-code-review (AI代码审查工具)实战:安装、四层规则链、自定义规则格式与实测避坑

阿里 open-code-review (AI代码审查工具)实战:安装、四层规则链、自定义规则格式与实测避坑结论先放这儿,方便你判断要不要往下看: 阿里把内部用了两年的 AI 代码审查助手开源了,命令行叫 ocr,n… · 2026/9/25 22:17:02

惠州净化器滤芯加工厂排名前五的有哪些?海昱洁净制品广受信赖
惠州净化器滤芯加工厂排名前五的有哪些?海昱洁净制品广受信赖

选净化器滤芯必看!惠州加工厂这4个坑千万别踩选购空气净化器滤芯、扫地机器人滤网这类过滤器材时,很多人都会陷入「选了低价货效果差、选了定制款周期长、找了小厂家品控没保障」的窘境。结合惠州本地采购商的真实反馈,最常见的踩坑痛点主要有以下4类&am… · 2026/9/25 22:15:54

2026年阀门销售服务行业发展现状与市场占有率及排名研究分析报告
2026年阀门销售服务行业发展现状与市场占有率及排名研究分析报告

Q1:2026年国内阀门销售服务行业发展现状是什么样的?从行业发展脉络来看,国内阀门市场已经从早期的价格混战阶段,进入到品牌化、专业化、本地化服务的细分竞争阶段。一方面,随着市政工程、工业制造、热力燃气等领域对工程质量要求… · 2026/9/25 22:15:54

YouTube 多视频怎么排推广计划
YouTube 多视频怎么排推广计划

为多视频建立发布观察与推广节奏的数据分析和 96SMM 产品支持 先按受众问题和内容依赖排序,再为每条视频设定观察窗口。避免同时大改标题、缩略图和推广来源,确保复盘能解释变化。 本文按“明确问题、完成内容、记录数据、诊断原因、选择支持、进入下一轮… · 2026/9/25 22:15:42

广州资质齐全的酒店吹风机厂家/酒店优质吹风机供应商客户口碑力荐
广州资质齐全的酒店吹风机厂家/酒店优质吹风机供应商客户口碑力荐

广州资质齐全的酒店吹风机厂家,汉威斯靠谱高性价比酒店吹风机供应商获客户口碑力荐汉威斯电器(广州)有限公司是专注生产高端高速护发电吹风的本土厂家,为国内公寓、酒店、民宿提供兼具品质感与实用性的商用、家用吹风机配套,以法式设计高新智… · 2026/9/25 22:15:17

KytyPS5游戏兼容性深度实测:UE5、Unity与自研引擎PS5大作在模拟器上的表现全解析
KytyPS5游戏兼容性深度实测:UE5、Unity与自研引擎PS5大作在模拟器上的表现全解析

KytyPS5游戏兼容性深度实测:UE5、Unity与自研引擎PS5大作在模拟器上的表现全解析 【免费下载链接】KytyPS5 PlayStation 5 emulator for Windows, Linux and MacOS 项目地址: https://gitcode.com/gh_mirrors/ky/KytyPS5 KytyPS5 是一款免费开源的 PlayStati… · 2026/9/25 22:15:04

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码