使用heapq构建最小堆和最大堆

python默认的heapq模块只支持最小堆的构建。昨天在做一个关于数据流中使用O(1)时间复杂度求中位数的算法题的时候,用到了最大堆和最小堆。借助heapq模块实现的最小堆如下 class SmallHeap: def init(self): self.arr = list() def heap_insert(self, val): heapq.heappush(self.arr,...

more


打包docker镜像的各种方法

1.打包正在运行的容器 docker commit container_id/name new_image_name 2.将镜像上传到docker registry中 docker push host/registry new_image_name 3.将镜像打包成压缩文件 docker export container_id/name > zipfile.tar docekr save...

more


Docker and Kubernetes Troubleshooting (持续更新...)

本文用以记录使用docker及其周边工具遇到的问题,方便以后遇到能快速解决。记录并没有一定的逻辑,只是每个具体的问题和它的解决方法 1.docker-engine conflicts with 2:docker-1.12.6-68.gitec8512b.el7.centos.x86_64...

more


xpath常用技巧及易混点

1.对于//和/,前者表示相对定位,后者表示绝对定位,在绝对定位的时候,它会从文档根节点算起,被选择元素的层级必须一级一级递进,不能跳级,比如以https://example.org 为例,我们想要选择a标签的内容,需要先定位到div,再定位到p,再通过p定位到a,表达式如下 //div//a 如果使用 /div/a 则会返回空,因为div下一级并没有a,它的孙节点才有a...

more


haipproxy优化小记

前两天简单了解了redis的过期策略:主动过期与延迟过期。主动过期的方式是,单独拿一个线程做定时扫描每个库,看expire table中的键是否过期,如果过期,就删除。它会随机抽样10个过期的键进行检查,如果其中有超过25%的键并没有实际被删除,那么删除这些键并进行下一轮随机抽样,直到比例低于25%。被动策略是在每次访问时,检查该主键是否过期,过期则删除。...

more