滑动最小值
给定一个长度为n的数列和一个整数k。求数列$bi = \min{a_i,a{i+1},\cdots,a_{i+k-1} }(i=0,1,\cdots,n-k)。
限制条件:
$1\le k \le n \le 10^6$, $0 \le a_i \le 10^9$
使用双端队列可以在O(n)时间内解决这个问题。最开始时双端队列为空,然后不断维护双端队列使它按照下面的顺序,存储用于计算后面的最小值a的元素的下标。
1 | // 输入 |
滑动最小值
给定一个长度为n的数列和一个整数k。求数列$bi = \min{a_i,a{i+1},\cdots,a_{i+k-1} }(i=0,1,\cdots,n-k)。
限制条件:
$1\le k \le n \le 10^6$, $0 \le a_i \le 10^9$
使用双端队列可以在O(n)时间内解决这个问题。最开始时双端队列为空,然后不断维护双端队列使它按照下面的顺序,存储用于计算后面的最小值a的元素的下标。
1 | // 输入 |