最少数量线段覆盖-华为OD

ops/2025/2/22 8:16:20/

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、题目描述
  • 二、输入描述
  • 三、输出描述
  • 四、java代码
  • 五、测试用例


前言

本人最近再练习算法,所以会发布一些解题思路,希望大家多指教

一、题目描述

给定坐标轴上的一组线段,线段的起点和终点均为整数并且长度不小于1,请你从中找到最少数量的线段,这些线段可以覆盖住所有线段。

二、输入描述

第一行输入为所有线段的数量,不超过10000,后面每行表示一条线段,格式为"x,y",x和y分别表示起点和终点,取值范围是[-105,105]。

三、输出描述

最少线段数量,为正整数。

java_14">四、java代码

java">public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = Integer.parseInt(sc.nextLine());List<int[]> list = new ArrayList<>();for (int i = 0; i < N; i++) {String[] split = sc.nextLine().split(" ");list.add(new int[]{Integer.parseInt(split[0]), Integer.parseInt(split[1])});}//按照线段的左侧下标进行正序排序,相同时,按照右侧下标正序排序list.sort(((o1, o2) -> {if (o1[0]==o2[0]) {return o1[1] - o2[1];} else {return o1[0] - o2[0];}}));//初始化线段数量,默认都无法完成覆盖int num = list.size();for (int i = 0; i < list.size(); i++) {int[] ints = list.get(i);if(i+1 <list.size()){//情况一:如果两个线段左侧下标相同,因为前面已经进行排序,所以后面的一定可以覆盖当前线段if(ints[0] == list.get(i+1)[0]){num--;} else if(ints[1] >= list.get(i+1)[1]){//情况二:如果右侧下标相同,则当前线段的一定可以覆盖下一个线段num--;//将下一个覆盖的线段的右侧下标进行延伸,继续向后比较list.get(i+1)[1] = ints[1];}}}System.out.println(num);}

五、测试用例

输入:
6
15 20
3 6
8 12
1 7
11 15
18 20
在这里插入图片描述


http://www.ppmy.cn/ops/40001.html

相关文章

如何excel里面数据格式设置为utf-8

在Excel中&#xff0c;直接设置数据的编码格式为UTF-8是不直接支持的&#xff0c;因为Excel文件&#xff08;如.xlsx或.xls&#xff09;本身并不直接具有一个“编码”属性&#xff0c;像文本文件&#xff08;如.txt或.csv&#xff09;那样。然而&#xff0c;你可以通过保存Exce…

在ubuntu服务器上创建一个 Systemd 服务单元文件以启动和管理您的应用程序

在Ubuntu服务器上创建一个环境的配置服务文件 创建服务单元文件&#xff1a; 在服务器上使用文本编辑器&#xff08;如 Nano 或 Vim&#xff09;创建一个新的服务单元文件。 例如&#xff0c;使用以下命令创建一个名为 my-webapi.service 的新文件&#xff1a; sudo vim /et…

MySQL报错:You can‘t specify target table ‘user‘ for update in FROM clause

一、问题 执行delete语句时&#xff0c;报错“You can’t specify target table ‘user’ for update in FROM clause” 翻译为“不能先select出同一表中的某些值&#xff0c;再update这个表(在同一语句中)”&#xff0c;即delete的目标表不能在其直接子查询中存在&#xff0…

pandas DataFrame 常用遍历方法

在Pandas中&#xff0c;可以使用多种方法遍历DataFrame中的数据。以下是几种常见的方法&#xff1a; 基于索引遍历DataFrame的每一行。 基于行号遍历DataFrame的每一行, 该方式通过行号获取行数据信息&#xff0c;格式为Series&#xff0c;无法获取改行的index信息。 使用iterr…

养成类游戏原理分析。

养成类游戏原理分析。 养成类游戏&#xff0c;顾名思义、应该是规划人生或者制定学习计划有关的。其现实符合度应该是评判的标准和成功的关键。此外&#xff0c;修仙类游戏和部分根据名著改编的游戏可能应该以养成类游戏为基本构件。 养成类游戏的设计&#xff1a;首先要明确任…

JupyterLab OpenCV展示图片

JupyterLab OpenCV展示图片 方式一 注意&#xff1a;此种方式如果在远程服务器上的JupyterLab上运行&#xff0c;可能会出现错误。 import cv2# 读取图片 image cv2.imread(photo/blg.png)# 显示图片 cv2.imshow(image, image)# 等待按键&#xff0c;之后关闭所有窗口 cv2.w…

TikTok海外运营:云手机的四种快速变现方法

随着TikTok用户基数的持续扩大&#xff0c;这个平台已成为全球创业者和品牌的新战场。其用户群接近20亿&#xff0c;并以年轻用户为主力军&#xff0c;市场渗透率逐年攀升。无论是大型组织、知名品牌&#xff0c;还是个人创业者&#xff0c;都无法忽视TikTok所带来的巨大商机。…

文件操作--IO

目录 1.认识文件 1.1树形结构组织和目录 2.文件路径&#xff08;Path&#xff09;* 2.1相对路径和绝对路径* 3.操作文件-File类 3.1属性 3.2构造方法 3.3方法 3.4代码示例 4.文件内容的读写--数据流 4.1 InputStream 4.2 OutputStream 代码示例1&#xff1a; 代…