以前也碰到过这种类型的题目,以前好像做出来过,但是忘记了,这次又坑了. 题目很简单,对于从前到后每一个连续的长度为k的数字,求出这段数字中的最大的数字和最小的数字. 一开始我用离散化+树状数组来更新和查询,时间复杂度为n*log(n)*log(n).这尼玛果断T啊. 后来才发现,没那么复杂哦.其实是用一个优先队列来解决问题的. 什么意思呢?对于初始状态,我们可以加入k-1个元素,然后每次加一个元素,进行弹出和查询的操作. 首先我们创建两个队列,分别用来解决最大值和最小值的问题. 这里只需要说明一…