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

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

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

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

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

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

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

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

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

http://www.jsqmd.com/news/130865/

相关文章:

  • 应用层自定义协议
  • 昇腾310P平台强化学习训练环境搭建实战:基于Qwen2.5-7B的完整部署流程
  • 光伏设计新选择:鹧鸪云
  • “网速快,打开网页慢”问题之解决
  • 鸿蒙学习实战之路-样式结构重用全攻略
  • 活着-洪真英
  • 程序员接单:2025 全渠道平台指南与实操建议
  • AI驱动下的连锁餐饮巡店模式:从人工核验到智能闭环
  • 初探 Python 製作一個 簡單聊天機器人
  • 12.23笔记
  • 鸿蒙学习实战之路-层叠布局 Stack 全攻略
  • web端使用roslib.js-ros2djs-ros3djs实现ros机器人在网页端可视化
  • 鸿蒙学习实战之路-Tabs标签页组件全攻略
  • 8个AI论文工具,助继续教育学生轻松完成写作!
  • 2025年鱼竿十大品牌排名全解析:鱼竿排名第一名到第十名品牌深度介绍 - 品牌2026
  • 企业高效定位高潜客户的技术路径与实践方法论
  • 鸿蒙学习实战之路-HarmonyOS 资源分类与访问指南
  • Harmony学习之分布式能力入门
  • CAXA CAD让设计变更评审会不再扯皮
  • 2025 年山东威海鱼竿生产厂家实力盘点:威海鱼竿生产厂家实力剖析 - 品牌2026
  • TRAE 国际版内置模型已支持 GPT-5.1!
  • 靠国产CAD规范研发管理,赢得大客户青睐
  • 鸿蒙学习实战之路-RelativeLayout相对布局全攻略
  • 国内仿真云平台哪家强?该如何选择?
  • 实时渲染哪家强?关键维度深度解析
  • Harmony之路:实战起航(二)——数据模型与业务逻辑封装
  • 鸿蒙学习实战之路-多端交互最佳实践
  • 10 个AI写作工具,助继续教育学生轻松写论文!
  • 鸿蒙学习实战之路-Java 开发者快速上手 ArkTS 指南
  • 如何实现pdf一页内容分割成多页打印?详细教程分享