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

区间交集:区间选点

区间交集:区间选点

区间选点

www.acwing.com/problem/content/907/

在这里插入图片描述

  1. 可以参考区间合并的思路,区间合并是求并集,本题是求交集

  2. 正确性:新的点应该尽可能的占有更多的区间,那么就是求重叠最多的地方

  3. 实现角度:

    1. 如何记录重叠
    2. 新加点后如何识别占有的区间
  4. 类似于区间合并,但是每次都是收缩,就能求出一段交集了

import java.util.*;public class Main {static final int N = 100010;static Pair[] p = new Pair[N];static int n;static class Pair implements Comparable<Pair> {int l, r;public Pair(int l, int r) {this.l = l;this.r = r;}@Overridepublic int compareTo(Pair o) {if (o.l == l) {return r - o.r;}return l - o.l;}}public static void main(String[] args) {Scanner sc = new Scanner(System.in);n = sc.nextInt();int l, r;for (int i = 0; i < n; i++) {l = sc.nextInt();r = sc.nextInt();p[i] = new Pair(l, r);}Arrays.sort(p, 0, n);l = Integer.MAX_VALUE;r = Integer.MIN_VALUE;int res = 0;for (int i = 0; i < n; i++) {if (r < p[i].l) {res++;l = p[i].l;r = p[i].r;} else {l = p[i].l;r = Math.min(r, p[i].r);}}System.out.println(res);}
}
http://www.xdnf.cn/news/1049959.html

相关文章:

  • redis序列化
  • 以笔为剑,破茧成蝶
  • 华为云Flexus+DeepSeek征文 | 基于华为云ModelArts Studio平台与Cherry Studio搭建知识库问答助手
  • 手机SIM卡通话中随时插入录音语音片段(Android方案)
  • C++20 核心特性详解:现代C++的进化里程碑
  • PyTorch 实现 MNIST 手写数字识别
  • Python训练营---DAY54
  • 子集筛选(Select by Data Index)组件研究
  • 2025年ASOC SCI2区TOP,多策略组合鲸鱼优化算法SCWOA+梯级水库调度,深度解析+性能实测
  • 线上GC count突增问题排查及修复记录
  • 创新项目实训纪实——总结与反思
  • 62-STM32的ISP一键下载电路
  • 如何判断一个项目是否有问题
  • MIT线性代数第一讲笔记
  • LlamaRL 大规模分布式异步强化学习框架
  • Java中hashCode方法与equal方法何时重写
  • 一夜冲刺!!微机原理与接口
  • 无人机指南
  • 常见内核TCP参数描述与配置
  • Django中间件讲解
  • sparseDrive(1): 论文解读
  • 【C++】简单商品价格计算程序练习
  • Day01_刷题niuke20250615
  • Axure应用交互设计:中继器数据向多种类型元件赋值
  • 产品经理页面布局设计的四维思考框架
  • 湖北理元理律师事务所:债务优化中如何保障债务人生存权益
  • Vim命令总结
  • Python类中的特殊方法详解
  • 第十七章:SD如何制作三视图(基础)
  • 计算机操作系统(计算题公式)