摘要: defaultdict defaultdict 是 dict 类型的子类,正如其名,初始化时,可以给key指定默认值,什么意思呢?直接看代码。如果是普通的dict对象,访问一个不存在的key时,会报错: dict1 = dict() print(dict1['a']) """ Traceback ( 阅读全文
posted @ 2021-02-10 17:06 bokeyuan6 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 引用全局变量,不需要golbal声明,修改全局变量,需要使用global声明,特别地,列表、字典等如果只是修改其中元素的值(而不是整体赋值的形式),可以直接使用全局变量,不需要global声明。 参考:https://www.pythonf.cn/read/127268 具体名称和细节:https: 阅读全文
posted @ 2021-02-09 20:15 bokeyuan6 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 在leetcode77中,发现list.append的结果不对。原代码: class Solution: def combine(self, n: int, k: int) -> List[List[int]]: res = [] path = [] def backtracing(n, start 阅读全文
posted @ 2021-02-09 16:03 bokeyuan6 阅读(640) 评论(0) 推荐(0) 编辑
摘要: 主要是深度遍历和层序遍历的递归和迭代写法。 另外注意:因为求深度可以从上到下去查 所以需要前序遍历(中左右),而高度只能从下到上去查,所以只能后序遍历(左右中)。 所有题目首先考虑root否是空。有的需要考虑root是否是范围内合理的起点。其他细节:每次需要引用节点值时考虑是否非空。 基本概念: 二 阅读全文
posted @ 2021-02-09 11:01 bokeyuan6 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 取数组中点时不要写 int mid = (left + right) // 2;,「这么写有一个问题:数值越界,例如left和right都是最大int,这么操作就越界了,在二分法中尤其需要注意!」 所以可以这么写:int mid = left + ((right - left) // 2); 阅读全文
posted @ 2021-02-05 20:26 bokeyuan6 阅读(53) 评论(0) 推荐(0) 编辑
摘要: __name__代表当前模块的名称,hello.py文件如果使用python hello.py的方式运行,__name__的值就等于__main__,此时say()函数会被执行。如果被当时模块导入时,__name__的值就会是模块名称hello.py __init__:当一个对象被创建,Python 阅读全文
posted @ 2021-02-05 15:37 bokeyuan6 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 转载自:https://www.cnblogs.com/zzhangyuhang/p/8534165.html 在介绍Python的self用法之前,先来介绍下Python中的类和实例我们知道,面向对象最重要的概念就是类(class)和实例(instance)。 类是抽象的模板,比如学生这个抽象的事 阅读全文
posted @ 2021-02-05 15:25 bokeyuan6 阅读(630) 评论(0) 推荐(0) 编辑
摘要: 之前一直没有注意过该问题,在leetcode144中写递归发现该问题,不知道递归函数传参是指针还是引用。 参考:http://c.biancheng.net/view/2258.html 如果是不可变对象,如常数,字符串等,传入引用。如果是可变对象,如字典,列表等,传入引用。 阅读全文
posted @ 2021-02-03 10:08 bokeyuan6 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 通过维护最小堆排序,使用heapq模块 一般使用规则:创建列表 heap = [] 函 数 描 述 heapq.heappush(heap, x) 将x压入堆中 heapq.heappop(heap) 弹出最小的元素 heapq.heapreplace(heap, x) 弹出最小的元素,并将x压入堆 阅读全文
posted @ 2021-02-02 10:53 bokeyuan6 阅读(69) 评论(0) 推荐(0) 编辑