Lazy loaded image
技术分享
🤯<每日AC>-洛谷P2251 质量检测
字数 654阅读时长 2 分钟
2024-10-20
2024-12-24
type
status
date
slug
summary
tags
category
icon
password
😀
10/20 从甜蜜的周末里来到第一题

📝 题目信息


大概就是说: 你要求出每一个长度为M的区间的最小值

🤗 走了不少弯路,一开始就想暴力

最开始用了很普通的双指针,但是发现TLE了很多,一看数据范围(10^6),看看我的代码,
O(N MlogM),这不超时才怪,所以Google了一下发现有一个非常巧妙的方法⬇️

—单调队列—

定义:

  • 【单调】 + 【队列】:
    • 要把所有在这个队列里面大于它的数都弹出队列
    • 这样就保证了队首元素是窗口的最小值
    • 判断队首元素是否在窗口内部
 

利用单调队列求解滑动窗口的最值问题

代码里面有解释

时间复杂度分析

  • 这样只需要遍历一次列表就可以求出每个窗口的最值 → O(N) N是列表长度
 

😭 总结反思:

暴力不可取,还是多学一点有用的结构吧 qwq单调队列 - OI Wiki

📎 参考文章

💡
欢迎您在底部评论区留言,一起交流~
上一篇
KMP数组!
下一篇
<每日一题>洛谷-P1563 [NOIP2016 提高组] 玩具谜题

评论
Loading...