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

区间选点问题 贪心算法的理解

问题
在数轴上给 n 个区间 [aᵢ, bᵢ],选最少的点,让每个区间至少包含一个点。

贪心策略
排序:按区间右端点从小到大排序
选点:从左到右扫描:
如果当前区间没被上一个点覆盖
就选这个区间的右端点作为新点

c++【
sort(区间, 按右端点排序);
点集合 = [];
上一个点 = -∞;

for(每个区间){
if(区间左端点 > 上一个点){
选区间的右端点作为新点;
加入点集合;
上一个点 = 当前右端点;
}
}

为什么是对的?
核心思想:早结束的区间要先照顾,选它的右端点可以尽量覆盖更多后面的区间。

简单证明:
第一个区间必须有点,选它右端点最"划算":
这是最早结束的区间
选这里可以覆盖所有和它重叠的区间
选完后,去掉已被覆盖的区间,问题变小了,同样方法继续。
时间复杂度
排序:O(n log n) ← 主要开销
扫描:O(n)
总共:O(n log n)

贪心算法要点
贪心选择性质:局部最优能导致全局最优
最优子结构:做完选择后,剩下还是同类问题
特点:简单、高效,但只对特定问题有效

http://icebutterfly214.com/news/139819/

相关文章:

  • “网速快,打开网页慢”问题之解决
  • Spring Cloud Gateway 路由配置与动态管理详解
  • 鸿蒙学习实战之路-Java 开发者快速上手 ArkTS 指南
  • 构建系统(Colcon)依赖管理(Rosdep)
  • 大模型微调7种方法:零基础入门全指南
  • Harmony学习之声明式UI开发
  • AGV物流+机器视觉:解锁包装车间自动化升级的核心密码
  • 稀土阻燃剂:提升电线电缆安全性
  • YOLOv11改进 - C3k2融合 | C3k2融合 IIA信息整合注意力(Information Integration Attention )平衡精度与计算成本 | TGRS2025
  • 多模态数据中台为什么说是被“逼出来”的?
  • Web 漏洞扫描入门的集合!2025 十大工具详细拆解,你用过哪几个?
  • 谁懂 30 + 职场人的无奈?网安行业越老越吃香,告别 35 岁焦虑,282G 学习资源速码!
  • 学校要求知网AIGC查重报告?比话能降知网AI率吗
  • 基于知识图谱的RAG
  • 【灵敏度分析】33节点配电网(IEEE33)改进灵敏度分析附Matlab代码
  • C#实现OPC客户端与S7-1200 PLC的通信
  • 02. 色彩空间类型
  • Lua 字符串处理指南
  • AI元人文构想:摘要(最终定稿版)
  • 东方博宜OJ 1307:数的计数 ← 递归(内含显示的循环结构设计)
  • 第五天—日期问题
  • gb_蓝桥杯_基础语法_数据容器_字典
  • 整洁架构小文档
  • 一次架构调整,让人工介入减少了一半
  • C++ 偏特化详解
  • 【AI革命】Deep Research深度研究:大模型如何实现复杂任务推理?零基础也能学会的多智能体技术!
  • 实用指南:电脑摄像头打不开?【图文详解】电脑摄像头怎么安装使用?电脑摄像头怎么打开?电脑怎么打开摄像头?
  • 2-SAT
  • 10366_基于Springboot的课程管理系统
  • 基于SpringBoot的老人健康信息管理系统计算机毕业设计项目源码文档