双端队列
Posted galaxyfengfeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双端队列相关的知识,希望对你有一定的参考价值。
我们前面讲了集合,堆,今天要讲的是双端队列。这三个的大致表现形式都差不多,所以我们把这三个连在一起学习。
双端队列的作用主要是支持队首,也就是左端高效的附加和弹出元素,注意下,列表是没有这个功能的喔~
我们也可以使用双端队列高效地旋转元素,比如使用ratate。
我们来看一段代码,你大概就能够明白我的意思了:
from collections import deque
q = deque(range(5))
q.append(5)
q.appendleft(6)
q
deque([6,0,1,2,3,4,5])
q.pop()
#按回车,得到的结果是:5
q.popleft()
#按回车,得到的结果是:6
q.rotate(3)
q
#按回车,得到的结果是:deque([2,3,4,0,1])
q,rotate(-1)
q
#按回车,得到的结果是:([3,4,0,1,2])
其他的代码我就不解释了,相信你是能够看得懂的,我就直接是一下rotate这个函数方法,你看函数内的值是3的时候,正数,我们最后的三个数给挪到最前面来,也就是把2,3,4挪到最前面,注意一下,5和6,刚才已经用pop删除掉了。接着看-1,负数,就把最前面的2挪到最后面。
好的,今天的内容就讲到这里啦~
(文章图片若有侵权,请联系作者删除)
以上是关于双端队列的主要内容,如果未能解决你的问题,请参考以下文章