python

力扣刷题日记2 python3实现

Posted by Alessia on April 22, 2026

写此系列博客的榜样来自: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():原地操作,内存效率最高。