2020/12/23
- 对于递归函数,其空间复杂度与最大递归深度有关
- 递归的诀窍在于找到形式相同但规模更小的子问题
- python函数中可以定义函数,但是参数不能不能写
self
,调用的时候直接写函数名即可 - 树的深度优先遍历,一条路径末端不一定是叶节点!
- 如:这里的1向右深度优先递归结束了,1不是叶节点
- 如:这里的1向右深度优先递归结束了,1不是叶节点
2020/12/24
- python判断是否是字母或者数字的函数
isalnum
- 动态规划的精髓在于找到
第i项
和前i-1项
(或第i-1项
)的关系- 动态规划是由规模较小的问题不断得到较大规模问题解的过程,关键在于状态转移方程
- 异或
^
在单个位上相同为0,不同为1
的性质使之- 任意数字和0异或,等于自身
- 任意数字和自身异或,等于0
- 异或满足交换律和结合律
- python
reduce
函数的作用是将序列所有元素以一定的规则累积起来- 如
recude(lambda x,y:x+y,[1,2,3,4])
是对序列进行求和
- 如
- 判断链表是否有环,使用快慢指针
2020/12/25
- 哈希可以降低时间复杂度(以空间换时间)
- 两条相交链表找交点,使用拼接链表的方式
- 对于有序序列,可以使用二分查找降低时间复杂度
- 双指针向中间扫描,可以解决有序数列找两数和的问题
- python实现ASCII操作的函数:
ord():字符转ASCII
,chr():ASCII数字转字符
- 列表推导式表示字母表
[chr(ord('A')+c) for c in range(26)]