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

千问 LeetCode 1851.包含每个查询的最小区间 public int[] minInterval(int[][] intervals, int[] queries)

这道题是经典的离线查询(Offline Query)配合优先队列(PriorityQueue)的题目。

核心思路

如果我们对每个查询都遍历一遍所有区间,时间复杂度是 O(Q times N),会超时。我们需要利用排序和堆来优化。

策略:
1. 排序(离线处理):
* 将 intervals 按左端点从小到大排序。
* 将 queries 按查询值从小到大排序(但要保留原始索引,以便最后还原结果)。

2. 优先队列(最小堆):
* 我们需要快速找到包含当前查询点且长度最小的区间。
* 堆中存储候选区间。堆顶始终是长度最小的区间。
* 堆中的元素可以是 {区间长度, 区间右端点}。

3. 滑动窗口思想:
* 随着查询值从小到大增加,我们只需要不断往堆里添加新的区间(左端点 le 当前查询值)。
* 同时,我们需要从堆里移除那些已经“过期”的区间(右端点 a[0] - b[0]);

// 2. 处理查询
// 创建一个新的数组存储 {查询值, 原始索引}
int[][] sortedQueries = new int[queries.length][2];
for (int i = 0; i a[0] - b[0]);

int[] res = new int[queries.length];
// 默认结果为 -1
Arrays.fill(res, -1);

// 3. 最小堆
// 存储 {区间长度, 区间右端点}
// 按照区间长度升序排列
PriorityQueue pq = new PriorityQueue((a, b) -> a[0] - b[0]);

int intervalIdx = 0; // 指向 intervals 的指针

// 4. 遍历每个查询(从小到大)
for (int[] q : sortedQueries) {
int queryVal = q[0];
int originalIdx = q[1];

// A. 将所有左端点 = 2,无需清理。
* 结果:堆顶长度 3。

3. 处理 q=3:
* 入堆:[3,6] (len=4)。堆:{3,4}, {4,4}, {4,6}。
* 清理:堆顶右端点 4 >= 3,无需清理。
* 结果:堆顶长度 3。

4. 处理 q=4:
* 入堆:[4,4] (len=1)。堆:{1,4}, {3,4}, {4,4}, {4,6}。
* 清理:堆顶右端点 4 >= 4,无需清理。
* 结果:堆顶长度 1。

5. 处理 q=5:
* 入堆:无更多区间。
* 清理:
* 堆顶 {1,4},右端点 4 = 5,停止。
* 结果:堆顶长度 4。

最终结果:[3, 3, 1, 4]。

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

相关文章:

  • C++26反射不是“玩具”!金融高频交易系统中毫秒级Schema热更新实现全链路源码分析
  • 微积分的变量艺术:超越x与y的微分与积分实践
  • 3步掌握ncmdump:轻松解密网易云音乐加密音频文件
  • 【收藏备用|2026年版】AI Agent落地瓶颈破解:从构建到运营,AI操作系统才是核心竞争力
  • 如何彻底清理显卡驱动?Display Driver Uninstaller终极解决方案
  • 千问 LeetCode 1862.向下取整数对和 public int sumOfFlooredPairs(int[] nums)
  • 使用JMeter动态更新JSON文件中的变量
  • 打破语言壁垒:XUnity.AutoTranslator让全球游戏无障碍畅玩
  • Spring 事务的致命陷阱:一个缓慢的 HTTP 请求,是如何耗尽数据库连接池的?
  • React:描述UI 官网笔记
  • R语言决策树回归:非线性数据分析实战指南
  • 15分钟精通BetterJoy:Switch手柄PC适配终极指南,解锁跨平台游戏控制新体验
  • 10个免费Illustrator脚本终极指南:彻底改变你的设计工作流
  • Upsonic AI智能体框架:为金融科技打造安全、可扩展的AI应用
  • nli-MiniLM2-L6-H768实战教程:构建NLI驱动的智能FAQ推荐与追问引导系统
  • Armv8-M安全扩展架构与TrustZone技术实战解析
  • LILYGO T-Connect Pro工业物联网控制器全解析
  • 字节跳动UI-TARS-desktop:混合渲染架构下的高性能桌面应用开发新范式
  • ResourceOverride终极指南:掌控网页资源的强大调试神器
  • 终极指南:如何使用XUnity.AutoTranslator为Unity游戏添加智能翻译
  • Crystal语言高性能HTTP路由库earl:轻量级设计与Radix Tree算法解析
  • Liveblocks实战:从零构建实时协作应用的核心架构与最佳实践
  • 基于多智能体协作的AI学术助手:自动文献检索、分析与综述生成
  • 【AI模型】微调-工具框架
  • 2026 网络安全六大趋势:决定企业安全布局的关键风向
  • 小白也能玩转Hunyuan-MT-7B:3步搭建个人翻译助手
  • Nordic nRF7002 EBII Wi-Fi 6扩展板解析与应用
  • 机器学习在糖尿病预测中的应用与数据预处理
  • Qwen3.5推理模型镜像免配置体验:开箱即用Web界面,零基础上手代码与逻辑问答
  • VSCode调试RTOS任务卡死?揭秘FreeRTOS+Zephyr内核变量实时视图插件(支持任务栈深度/优先级/阻塞原因毫秒级刷新)