堆相关例子-最大线段重合问题

news2025/1/23 0:34:37

问题描述

 给定很多线段,每个线段都有两个数[start, end],

表示线段开始位置和结束位置,左右都是闭区间

规定:

1)线段的开始和结束位置一定都是整数值

2)线段重合区域的长度必须>=1

返回线段最多重合区域中,包含了几条线段

例如:[3,10],[3,4],[5,9],[7,13],[9,10]返回3 

暴力方式解题

思路

先得到线段最小点和最大点,这是所有线段在x轴上的范围 在该范围上,取小数点如0.5进行查看,即查看每个0.5位置,有没有线段包含该点,记录多少条线段 max 用一个变量cover保存所有点中最多覆盖的线段条数 最后得到的cover就是重合区域最多的线段数目

图例

利用小根堆解题

思路

1.将开始点排序后,遍历该数组

2.将堆中所有 <= 当前线段的开始点的数弹出

3.将该点的结束点加入到堆中

4.记录过程中堆的历史最大长度

5.遍历结束后该长度就是其重合最多线段的个数

图例

待排序数组,且以按开始点排序

[3,10],[3,4],[5,9],[7,13],[9,10]

1. 遍历到[3,10]时

2. 遍历到[3,4]时

3. 遍历到[5,9]时

4.遍历到[7,13]时

5.遍历到[9,10]时

code
public static int coverMax(int [][] lines){
        if(lines.length < 2)
            return 0;
        Arrays.sort(lines, (a, b) -> (a[0] - b[0]));
        PriorityQueue<Integer> minHeap = new PriorityQueue<>();
        int max = 0;
        for (int [] line : lines){
            while (!minHeap.isEmpty() && minHeap.peek() <= line[0]){
                minHeap.poll();
            }
            minHeap.add(line[1]);
            max = Math.max(max,minHeap.size());
        }
        return max;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/996416.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Alibaba(获得店铺的所有商品) API 接口

为了进行电商平台 的API开发&#xff0c;首先我们需要做下面几件事情。 1&#xff09;开发者注册一个账号 2&#xff09;然后为每个alibaba应用注册一个应用程序键&#xff08;App Key) 。 3&#xff09;下载alibaba API的SDK并掌握基本的API基础知识和调用 4&#xff09;利…

appium+jenkins实例构建

自动化测试平台 Jenkins简介 是一个开源软件项目&#xff0c;是基于java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件的持续集成变成可能。 前面我们已经开完测试脚本&#xff0c;也使用bat 批处…

Linux TCP和UDP协议

目录 TCP协议TCP协议的面向连接1.三次握手2.四次挥手 TCP协议的可靠性1.TCP状态转移——TIME_WAIT 状态TIME_WAIT 状态存在的意义&#xff1a;&#xff08;1&#xff09;可靠的终止TCP连接。&#xff08;2&#xff09;让迟来的TCP报文有足够的时间被识别并被丢弃。 2.应答确认、…

linux 堆探索

堆的虚拟地址是连续的&#xff0c;是brk来分配&#xff0c;brk是一个指针指向堆顶的指针&#xff0c;并且是可以复用的&#xff0c;但是只有在堆顶空闲128k时&#xff0c;才收缩&#xff0c;也就是说&#xff0c;为了减少page_fault&#xff0c;可重用&#xff0c;开销小的特点…

消息队列--入门篇

消息队列–入门篇 目录 消息队列--入门篇如何学习一门新技术&#xff1f;消息队列的组件大体介绍一下producerproducer groupnameSrvbrokerbroker clusterconsumer和consumer groupTopicTag 总结 如何学习一门新技术&#xff1f; 学习任何知识需要有一个整体的认识&#xff0c…

【数据分享】2006-2021年我国省份级别的园林绿化相关指标(多项指标)

《中国城市建设统计年鉴》中细致地统计了我国城市市政公用设施建设与发展情况&#xff0c;在之前的文章中&#xff0c;我们分享过基于2006-2021年《中国城市建设统计年鉴》整理的2006—2021年我国省份级别的市政设施水平相关指标、2006-2021年我国省份级别的各类建设用地面积数…

【Linux】进程概念I --操作系统概念与冯诺依曼体系结构

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法…感兴趣就关注我吧&#xff01;你定不会失望。 本篇导航 1. 冯诺依曼体系结构为什么这样设计? 2. 操作系统概念为什么我们需要操作系统呢?操作系统怎么进行管理? 计算机是由两部分组…

使用Xshell远程访问工具连接到Linux

首先需要查看Linux地址&#xff0c;在Linux主界面中右键选择“Open in Terminal” 输入“ifconfig”指令查看IP地址 打开Xshell&#xff0c;输入相关信息&#xff0c;建立连接 点击连接&#xff0c;按照提示输入用户名 root和你自己安装centos7时设置的密码&#xff0c;用…

css实现圆角三角形,圆角三角形的实现

今天给大家带来一个如何实现圆角三角形的方案&#xff0c;这个方案虽然可以实现&#xff0c;但是也是借助拼凑等方式来实现的&#xff0c;假如想一个div来实现圆角三角形&#xff0c;还是比较困难的。之前文章讲了如何实现对话框&#xff0c;里面介绍了三角形的实现方式。今天讲…

使用navicat for mongodb连接mongodb

使用navicat for mongodb连接mongodb 安装navicat for mongodb连接mongodb 安装navicat for mongodb 上文mongodb7.0安装全过程详解我们说过&#xff0c;在安装的时候并没有勾选install mongodb compass 我们使用navicat去进行可视化的数据库管理 navicat for mongodb下载地址…

秒杀“超卖”问题

概述&#xff1a;限时秒杀活动在我们的日常生活中有很多&#xff0c;尤其在“双11”&#xff0c;“618”这类购物节活动中用户的并发数更是海量剧增&#xff0c;那么系统为了防止“超卖”秒杀商品&#xff0c;怎么做才能不影响性能的同时防止超卖。 为了解决“超卖”问题有两种…

mysql或ps提示 vcruntime140_1.dll丢失如何修复,5种方法办法你搞定

今天我在运行一款新安装的软件时&#xff0c;突然遇到了一个让我十分困扰的问题——系统提示vcruntime140_1.dll文件丢失。这个问题导致我无法正常使用这个软件&#xff0c;我也不知道怎么回事&#xff0c;所以我在网上找了一天终于让我找到解决这个问题的方法了&#xff0c;今…

绩效只是绩效

绩效只是绩效 一、背景二、绩效和管理三、绩效和薪资四、QA环节五、总结与反思 一、背景 目前大部分主体的绩效考核方向不明确&#xff0c;有的只是为了考核而考核&#xff0c;那么绩效是什么&#xff1f; 打A&#xff08;超出预期&#xff09;和打D&#xff08;低于预期&…

阿里云ESC服务器CPU一直处于100%该如何排查?

阿里云ESC服务器CPU一直处于100%该如何排查&#xff1f; 问题背景 使用 docker 容器化部署整个项目&#xff0c;然后服务器的CPU一直处于100%&#xff0c;此时就出现了问题&#xff1a;此时如果重新开启一个窗口去连接&#xff0c;或者访问宝塔面板、Navicat连接MySQL就连接不…

使用redis+lua通过原子减解决超卖问题【示例】

文章目录 前言一、准备工作二、不使用Lua三、使用Lua 前言 超卖&#xff0c;即在并发的情况下&#xff0c;所售商品数量大于商品的库存数量。在并发量大的情况下&#xff0c;用户请求同时到达&#xff0c;对数据库进行操作&#xff0c;在没有采取相应的处理的情况时从而导致出…

第八章 Linux实际操作——定时任务调度

第八章 Linux实际操作——定时任务调度 8.1 crond任务调度8.1.1 概述8.1.2 基本语法8.1.3 常用选项8.1.4 快速入门8.1.5 应用实例8.1.6 crond相关指令 8.2 at定时任务8.2.1基本介绍8.2.2 at命令格式8.2.3 at命令选项8.2.4 at时间定义8.2.5 应用实例 8.1 crond任务调度 crontab…

Vulnhub系列靶机---HarryPotter-Nagini-哈利波特系列靶机-2

文章目录 信息收集主机发现端口扫描gobuster目录扫描dirsearch扫描joomscan扫描实现http3访问 漏洞利用Gopherus工具GetShell提权firefox_decrypt工具 总结 靶机文档&#xff1a;HarryPotter: Nagini 下载地址&#xff1a;Download (Mirror) 信息收集 主机发现 端口扫描 访问8…

生成克隆钓鱼网站与对win7进行后渗透操作

目录 目录 前言 系列文章列表 思维导图 1&#xff0c;实验涉及复现环境 2&#xff0c;CS的介绍 2.1,CS的简介 2.2,CS的主要功能 3&#xff0c;CS的安装 3.1,将cobalt_strike_4.5文件夹放到kali中 3.1,放入过程中的注意事项 3.2,如图所示 4,配置工具 4.1,进入c…

Kafka3.0.0版本——消费者(Sticky分区分配策略以及再平衡)

目录 一、Sticky分区分配策略原理二、Sticky分区分配策略 示例需求三、Sticky分区分配策略代码案例3.1、创建带有7个分区的sevenTopic主题3.2、创建三个消费者 组成 消费者组3.3、创建生产者3.4、测试3.5、Sticky分区分配策略代码案例说明 四、Sticky分区分配再平衡案例4.1、停…

机器人抓取检测技术的研究现状

1.分析法 图 1 为分析法在进行抓取检测时所采用的 一般策略[3] [3]Sahbani A, El-Khoury S, Bidaud P. An overview of 3D object grasp synthesis algorithms[J]. Robotics and Autonomous Systems, 2012, 60(3): 326-336. 首先,基于环境限制和机械手与物体模 型进行抓取检…