位置: 编程技术 - 正文

Python算法应用实战之队列详解(python算法的应用)

编辑:rootadmin

推荐整理分享Python算法应用实战之队列详解(python算法的应用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python算法基础,python算法基础,python算法案例,用python写算法,python算法案例,python算法的应用,python算法基础,python算法的应用,内容如对您有帮助,希望把文章链接给更多的朋友!

队列(queue)

队列是先进先出(FIFO, First-In-First-Out)的线性表,在具体应用中通常用链表或者数组来实现,队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作,队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加(摘录维基百科)。

如图所示

队列的接口

一个队列至少需要如下接口:

接口 描述 add(x) 入队 delete() 出队 clear() 清空队列 isEmpty() 判断队列是否为空 isFull() 判断队列是否未满 length() 队列的当前长度 capability() 队列的容量

然而在Python中,可以使用collections模块下的deque函数,deque函数提供了队列所有的接口,那么先让我门看看队列deque函数提供了那些API把:

collections.deque是双端队列,即左右两边都是可进可出的

方法 描述 append(x) 在队列的右边添加一个元素 appendleft(x) 在队列的左边添加一个元素 clear() 从队列中删除所有元素 copy() 返回一个浅拷贝的副本 count(value) 返回值在队列中出现的次数 extend([x..]) 使用可迭代的元素扩展队列的右侧 extendleft([x..]) 使用可迭代的元素扩展队列的右侧 index(value, [start, [stop]]) 返回值的第一个索引,如果值不存在,则引发ValueError。 insert(index, object) 在索引之前插入对象 maxlen 获取队列的最大长度 pop() 删除并返回最右侧的元素 popleft() 删除并返回最左侧的元素 remove(value) 删除查找到的第一个值 reverse() 队列中的所有元素进行翻转 rotate() 向右旋转队列n步(默认n = 1),如果n为负,向左旋转。

现在我们在Python中测试下这些个API的使用吧。

入队操作

出队操作

其他的API

实例

Python算法应用实战之队列详解(python算法的应用)

二项式系数

题目

编写程序,求二项式系数表中(杨辉三角)第K层系列数

思路

把第K行的系数存储在队列中 依次出队K层的系数(每行最后一个1不出队),并推算K+1层系数,添加到队尾,最后在队尾添加一个1,便变成了k+1行。

解决代码

划分无冲突子集

题目

某动物园搬家,要运走N种动物,老虎与狮子放在一起会大家,大象与犀牛放在一个笼子会打架,野猪和野狗放在一个笼子里会打架,现在需要我们设计一个算法,使得装进同一个笼子的动物互相不打架。

思路

把所有动物按次序入队 创建一个笼子(集合),出队一个动物,如果和笼子内动物无冲冲突则添加到该笼子,有冲突则添加到队尾,等待进入新笼子 由于队列先进先出的特性,如果当前出队动物的index不大于前一个出队动物的index,说明当前队列中所有动物已经尝试过进入且进入不了当前笼子,此时创建信的笼子(集合)

解决代码

数字变换

题目

对于一对正整数a,b,对a只能进行加1,减1,乘2操作,问最少对a进行几次操作能得到b?

例如:

a=3,b=: 可以通过-1,3次操作得到; a=5,b=8:可以通过(5-1)*2,2次操作得到8;

思路

本题用广度优先搜索,寻找a到b状态迁移最短路径,对于每个状态s,可以转换到撞到s+1,s-1,s*2:

把初始化状态a入队; 出队一个状态s,然后s+1,s-1,s*2入队; 反复循环第二步骤,直到状态s为b;

解决代码

总结

标签: python算法的应用

本文链接地址:https://www.jiuchutong.com/biancheng/380032.html 转载请保留说明!

上一篇:python模块之re正则表达式详解(python repr)

下一篇:Python算法应用实战之栈详解(python算法怎么用)

  • 工资不纳税项目
  • 异地缴纳税款
  • 公司购买的打印机
  • 企业缴纳残疾人保证金按什么标准缴纳
  • 土地出让要不要交印花税吗
  • 转增股如何计算资本公积金?
  • 当天开的进项发票怎么开
  • 收到差额纳税的发票进项税能抵扣吗
  • 物业收取的滞纳金怎么算
  • 股权投资损失怎么算出来的
  • 初级备考需要多长时间
  • 缴纳投标保证金
  • 不可抵扣的进项税额如何做账
  • 小微企业增值税优惠政策最新2022
  • 合作社免税收入需要成本吗?
  • 购进商品是什么会计科目
  • 升级华为鸿蒙系统怎么样
  • qq上的时间和手机不一样怎么办
  • 未开票收入缴纳所得税吗
  • 固定资产和固定资金的区别
  • nwtray.exe - nwtray是什么进程 作用是什么
  • php r
  • 待抵扣进项税额贷方表示什么
  • 财政资金借款给企业
  • 支付水电费增值税账务处理
  • 若依项目制作饼状图和柱状图
  • 安装nodemodules
  • 工商年报纳税总额包括滞纳金吗
  • vue创建项目后开始写的步骤
  • 印花税应税凭证数量是什么意思
  • 深度学习中的FPN详解
  • vuetify cdn
  • 增值税纳税申报实训报告
  • 定额发票借给别人盖别人店的章可以吗
  • 购入固定资产怎么做账务处理
  • c语言中数组怎么用
  • 未分配利润用于扩大再生产
  • 进项发票入账但没有发票
  • 进项税额在贷方怎么办
  • 改签机票要收费
  • sql按照日期范围查询
  • 视同销售要不要确认收入?
  • 其他债权投资减值为什么不影响所有者权益
  • 财务费用报销流程图word
  • 长期持股的最好方法
  • 承兑汇票兑现怎么填写
  • 增值税红字冲销能跨年吗
  • 中秋过节费会计分录
  • 物业公司代收电费可以差额征税吗
  • 公司的进账能打到私人卡上
  • 如何查询对方是否起诉离婚
  • 购置固定资产进项税处理的变迁
  • 小企业会计准则会计科目表
  • 电子发票显示错误信息是什么原因
  • 出口退税企业如何更正申报增值税
  • 同一个sql语句 连接两个数据库服务器
  • 64位win7旗舰版右下角音量小喇叭图标不见了怎么找回?
  • 在Windows Server 2008中配置FTP服务
  • 在windows xp
  • U盘写保护怎么处理
  • 在mac中运行exe
  • win10怎么打开ie浏览器的兼容模式
  • 系统时间错乱如何使用NTP进行系统时间调整
  • 简单的jquery插件实例
  • Https联网工具类
  • bat批处理视频教程
  • 提高网站性能
  • python中列表删除
  • 下列关于eval()函数的说法正确的是
  • jquery动画让div旋转
  • 实用的app都有哪些
  • 安卓模拟器比手机快吗
  • 新疆油田在哪个地方
  • 公务员车补缴个税吗
  • 车辆购置税去哪个税务局交
  • 重庆社保60%退休工资
  • 财税咨询服务公司职位有哪些
  • 餐厅税务依据有哪些
  • 十堰市税务大厅
  • 税务系统绩效管理首要目标
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设