
leetcode技巧
文章平均质量分 54
1
张小猪的家
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
heapq — Heap queue algorithm(堆队列,优先队列)
该模块提供了堆队列算法的实现,也称为优先队列算法。 堆是二叉树,其每个父节点的值都小于或等于其任何子节点,堆的特性是它的最小元素总是根。 主要用法 heapq.heappush(heap, item) 将itme的值推送到堆上,保持堆不变。 heapq.heappop(heap) 弹出并返回堆中最小的项,保持堆不变。如果堆为空,则引发IndexError。要访问最小的项而不弹出它,请使用heap[0]。 简单例子 >>> h = [] >>> heappush原创 2021-07-30 15:48:37 · 309 阅读 · 0 评论 -
二叉树(前序,中序,后序,层序)遍历递归与循环的python实现
二叉树的遍历是在面试使比较常见的项目了。对于二叉树的前中后层序遍历,每种遍历都可以递归和循环两种实现方法,且每种遍历的递归实现都比循环实现要简洁。下面做一个小结。 一、中序遍历 前中后序三种遍历方法对于左右结点的遍历顺序都是一样的(先左后右),唯一不同的就是根节点的出现位置。对于中序遍历来说,根结点的遍历位置在中间。 所以中序遍历的顺序:左中右 1.1 递归实现 每次递归,只需要判断结点是不是None,否则按照左中右的顺序打印出结点value值。 class Solution: def inorde转载 2021-08-10 19:04:01 · 2311 阅读 · 0 评论 -
快速幂算法
递归快速幂 快速幂是一个二分的思路。我们很自然地可以得到一个递归方程: 计算a的n次方,如果n是偶数(不为0),那么就先计算a的n/2次方,然后平方;如果n是奇数,那么就先计算a的n-1次方,再乘上a;递归出口是a的0次方为1。 递归快速幂的思路非常自然,代码也很简单(直接把递归方程翻译成代码即可): def qpow(a, n): if n == 0: return 1 elif n % 2 == 1: return qpow(a, n - 1) * a else:原创 2021-08-21 19:06:26 · 177 阅读 · 0 评论 -
Python位运算符
Python位运算符 按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下: 下表中变量 a 为 60,b 为 13,二进制格式如下: a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011 运算符 描述 实例 & 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结原创 2021-08-29 11:29:14 · 587 阅读 · 0 评论