昨日一题 1670. 设计前中后队列(中等,列表)

news/2024/2/29 2:33:11

在这里插入图片描述

  1. 维护左右两个队列,控制左队列的长度比右队列长,且不超过1
  2. pushFront 往左队列的左边添加元素
  3. pushMiddle 往左队列的右边或者右队列的左边添加元素
  4. 其余同理,可以参照代码
class FrontMiddleBackQueue:def __init__(self):self.llist, self.rlist = [], []def pushFront(self, val: int) -> None:self.llist.insert(0, val)if len(self.llist) > len(self.rlist) + 1:self.rlist.insert(0, self.llist.pop())def pushMiddle(self, val: int) -> None:if len(self.llist) > len(self.rlist):self.rlist.insert(0, self.llist.pop())self.llist.append(val)def pushBack(self, val: int) -> None:self.rlist.append(val)if len(self.rlist) > len(self.llist):self.llist.append(self.rlist.pop(0))def popFront(self) -> int:if len(self.llist) == 0:return -1ans = self.llist.pop(0)if len(self.rlist) > len(self.llist):self.llist.append(self.rlist.pop(0))return ansdef popMiddle(self) -> int:if len(self.llist) == 0:return -1ans = self.llist.pop()if len(self.rlist) > len(self.llist):self.llist.append(self.rlist.pop(0))return ansdef popBack(self) -> int:if len(self.llist) == 0:return -1if len(self.rlist) == 0:return self.llist.pop()ans = self.rlist.pop()if len(self.llist) > len(self.rlist) + 1:self.rlist.insert(0, self.llist.pop())return ans

https://www.xjx100.cn/news/3118806.html

相关文章

CI/CD 最佳实践,让研发团队效率起飞!

目录 CI/CD 是什么? CI/CD 有哪些最佳实践? 深入研究 CD 的最佳实践 如何改进 CI/CD 流水线? 如何衡量 CI/CD 是否成功? 遵循 CI/CD 最佳实践有哪些收益? CI/CD 部署策略 如何在组织中实施 CI/CD? …

VSCode 代码调试

断点调试(debug): 指在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错…

pytorch 多卡并行训练

目录 设置参数: 训练时参数: 调用命令: 设置参数: import argparseparser argparse.ArgumentParser()parser.add_argument(--batch_size, typeint, default64, helpBatch size for training)parser.add_argument(--local_rank…

layui 日期选择框弹出后消失

原因是窗口太小,日期窗碰撞边缘后会消失,解决方法是增加 trigger: click 属性。 laydate.render({ elem: #kp_date , type: date , trigger: click });

机器学习与 S3 相集成 :释放数据的力量

文章作者:Libai 引言 在当今数据驱动的世界中,企业不断寻求如何高效利用企业自身所产生的数据的解决方案。机器学习已经成为一种提取有价值的见解和做出数据驱动决策的强大工具。然而,机器学习模型的成功在很大程度上依赖于高质量数据的可用…

DDoS高防IP到底是什么?

DDoS高防IP是提供一个带防御的IP,主要是针对网络中的DDoS攻击进行保护,是针对互联网服务器遭受大流量的DDoS攻击后,导致服务不可用的情况下,用户可以通过配置高防IP,将攻击流量引流到高防IP上,从而确保源站…

SpringCloud原理-OpenFeign篇(四、请求原理)

文章目录 前言正文一、书接上回,从代理对象入手二、ReflectiveFeign.FeignInvocationHandler#invoke()三、SynchronousMethodHandler#invoke(...) 的实现原理3.1 invoke(...)源码3.2 executeAndDecode(...) 执行请求并解码 四、如何更换client 的实现 附录附1&#…

详细学习Pyqt5中的2种弹簧

Pyqt5相关文章: 快速掌握Pyqt5的三种主窗口 快速掌握Pyqt5的2种弹簧 快速掌握Pyqt5的5种布局 快速弄懂Pyqt5的5种项目视图(Item View) 快速弄懂Pyqt5的4种项目部件(Item Widget) 快速掌握Pyqt5的6种按钮 快速掌握Pyqt5的10种容器&…