码迷,mamicode.com
首页 > 其他好文 > 详细

双端队列

时间:2018-07-06 23:28:24      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:bsp   cti   一起学   方法   队列   height   一起   旋转   直接   

我们前面讲了集合,堆,今天要讲的是双端队列。这三个的大致表现形式都差不多,所以我们把这三个连在一起学习。

双端队列的作用主要是支持队首,也就是左端高效的附加和弹出元素,注意下,列表是没有这个功能的喔~

我们也可以使用双端队列高效地旋转元素,比如使用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挪到最后面。

好的,今天的内容就讲到这里啦~

技术分享图片

 

(文章图片若有侵权,请联系作者删除)

双端队列

标签:bsp   cti   一起学   方法   队列   height   一起   旋转   直接   

原文地址:https://www.cnblogs.com/Galaxyfengfeng/p/9275806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!