当前位置: 首页 > wzjs >正文

用rp怎么做网站导航菜单建筑工程网上培训平台

用rp怎么做网站导航菜单,建筑工程网上培训平台,wordpress底部信息后台修改,承德建站公司目录 一、deque双端队列 1.头部删除元素popleft() 2.BFS(广度优先搜索)优化 3.滑动窗口(双指针) 4.实现栈或队列 5. 双向遍历与操作 一、deque双端队列 特点:支持两端 O (1) 时间复杂度的…

目录

一、deque双端队列

1.头部删除元素popleft()

2.BFS(广度优先搜索)优化

3.滑动窗口(双指针)

4.实现栈或队列

5. 双向遍历与操作


一、deque双端队列

  • 特点:支持两端 O (1) 时间复杂度的添加和删除操作,比列表(list)的左端操作(如list.insert(0, x))高效得多。
  • 常用方法
    • append(x)/appendleft(x):右端 / 左端添加元素。
    • pop()/popleft():右端 / 左端删除元素。
    • rotate(n):循环移动元素(n>0右移,n<0左移)。
    • maxlen:固定队列长度(超出时自动删除对侧元素)。
  • 参数:初始化时可传入迭代对象,如deque([1,2,3]),或指定maxlen=5
  • 优点
    • 高效处理队列(FIFO)和栈(LIFO)场景。
    • 滑动窗口场景中,可快速维护窗口内元素(如删除过期元素)

1.头部删除元素popleft()

import time
from collections import deque
list1 = list(range(1000_0000))
X1 = time.time()
for _ in range(1000):list1.pop(0)
print(time.time()-X1)list2 = deque(range(1000_0000))
X1= time.time()
for _ in range(1000):list2.popleft()
print(time.time()-X1)
#8.393102645874023
#0.0恐怖

2.BFS(广度优先搜索)优化

在 BFS 中,需要频繁从队列头部弹出元素、从尾部添加元素。dequepopleft()操作时间复杂度为 O (1),比列表的pop(0)更高效(列表的pop(0)是 O (n))。

实例:二叉树遍历

from collections import dequeclass TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightdef levelOrder(root):if not root:return []queue = deque([root])  # 初始化队列result = []while queue:node = queue.popleft()  # O(1) 弹出队首元素result.append(node.val)if node.left:queue.append(node.left)  # O(1) 添加到队尾if node.right:queue.append(node.right)return result

3.滑动窗口(双指针)

from collections import dequedef maxSlidingWindow(nums, k):result = []window = deque()  # 存储索引for i in range(len(nums)):# 移除窗口外的元素if window and window[0] <= i - k:window.popleft()# 保持队列单调递减while window and nums[window[-1]] < nums[i]:window.pop()window.append(i)# 窗口形成后记录最大值if i >= k - 1:result.append(nums[window[0]])return result

4.实现栈或队列

from collections import dequeclass MyQueue:def __init__(self):self.queue = deque()def push(self, x):self.queue.append(x)  # O(1)def pop(self):return self.queue.popleft()  # O(1)def peek(self):return self.queue[0]def empty(self):return len(self.queue) == 0

5. 双向遍历与操作

from collections import dequedef isPalindrome(s):dq = deque(s)while len(dq) > 1:if dq.popleft() != dq.pop():  # 两端同时弹出比较return Falsereturn True

http://www.dtcms.com/wzjs/574031.html

相关文章:

  • 上海平台网站制作公司哪家好最近的男科医院是哪家医院
  • 网站建设与管理教案如何自己做一个app
  • 东莞纸箱定制 技术支持 东莞网站建设展示型网站系统
  • 织梦做的网站 xampp怎么批量修改wordpress文章内容
  • 怎样手机微信登陆网站wordpress 联系方式
  • 做私人小网站赚钱吗广州装修公司口碑最好的是哪家
  • 企业网站建设需要准备资料电子商务网站建设规划范文
  • 做ppt的素材免费网站html5网站模板源码
  • 网站开发保存学习进度的方案做团购的的网站有哪些
  • c net做的网站wordpress 禁止升级
  • 企业网站建设趋势响应式网站开发哪家好
  • 电子商务网站建设系统功能可以做图片视频的网站
  • 凡科建站官网大连营销策划公司排名
  • 北京网站建设推荐华网天下昆明网站制作
  • 那些网站可以够买域名物联网设计论文
  • 网站建设综合实训总结与体会思茅网站建设
  • 网站建设的淘宝模板怎么做短链接网站
  • 建设英文网站多少钱网站研发费用吗
  • 企业网站建设的作用a5站长网
  • Divi WordPress企业建站主题付费网站建设
  • 网站多次提交黑客做的网站好用不
  • 浏览有关小城镇建设的网站 记录制作自己的平台网站
  • 蚌埠企业做网站兰州网站关键字优化
  • 电子商务网站建设的大纲一个网站做数据维护3天正常吗
  • 制作精美网站建设服务周到做网站代运营如何寻找客户
  • 海淀做网站团员个人信息查询系统
  • 浪起科技做的网站怎么样tk域名官方网站
  • 百度收录好的网站外国人做的篆字网站
  • 中文响应式网站模板wordpress放视频没画面
  • 社交媒体平台外贸网站优化排名