PKU2823 sliding window

来源:互联网 发布:数据库范式转化 编辑:程序博客网 时间:2024/05/22 15:15

       这是一道经典的数据结构题,可以用来为多种数据结构入门或者热身。它涉及到的数据结构有单调队列、堆结构、线段树。后两项应该是大家比较熟悉的,所以今天做讲解的是单调队列。

       我们以最小值的情况为例。对于两个元素a[i]a[j],我们假设i<j。则在本题中一定有a[i]a[j]之前被删除。如果又有a[j]<a[i]那么a[i]便一定不是最优的,所以可以提前删除a[i]这个无用元素。

       根据均摊思想,单调队列的时间复杂度为O(n),应该是最优的。

       具体比对请见代码!

 

【单调队列】

 

 

【堆结构】

 

 

 

【线段树】

 

 

 

原创粉丝点击