写此系列博客的榜样来自:leetcode cookbook
内置函数
常用
len()
sorted() #返回的是字典
tuple()
有用
Counter()
'''
属于 Python 标准库中的 collections 模块。在 LeetCode 环境中,List 和 Counter 通常已经被默认导入,所以你不需要手动写 from collections import Counter。
主要的功能是:
统计次数:接收一个可迭代对象(如字符串、列表),自动统计其中每个元素出现的次数。
字典行为:它本质上是一个字典(dict)的子类,键(key)是元素,值(value)是次数。
'''
数据结构
list
列表/动态数组 list(), []
从末尾添加或删除元素
self.nums.append()
self.nums.pop()
dict
{}
d = defaultdict(list) # 当遇到不存在的键时,请自动创建一个空列表 [] 作为它的值。
set
st = set(nums) # 把 nums 转成哈希集合
Tree
root: Optional[TreeNode]
#Python 的类型提示语法,意思是:这个参数 root 既可以是 TreeNode 类型的对象,也可以是 None
#如果输入的树是空的,那么 root 就是 None。如果不加 Optional,类型检查器会报错,因为它以为 root 必须是个节点对象
python 语法
闭包与 LEGB 规则 在 Python 中,当一个函数内部定义了另一个函数时,内部函数可以访问外部函数的变量。这叫做闭包。 Python 查找变量时遵循 LEGB 规则: Local:先在函数内部找(比如 node 变量)。 Enclosing:如果没找到,去外层嵌套函数找(这里就是 inorderTraversal 里的 ans)。 Global:再没找到,去全局找。 Built-in:最后去内置模块找。
空间复杂度
O(1)
.reverse():原地操作,内存效率最高。