2024.03.25_学习日记
天气:晴
学习地点:学校
学习时长:10h
学习内容
- 哈希表
- 快乐数
想求数字的每一个值可以把数字转化成字符串再遍历 - 四数相加
- 四数之和=target
这个题记得注意剪枝和continue以及break的使用。 - KMP lc28题
- KMP题
(n % (n - kmplist[-1]) == 0): 这部分判断是判断字符串的长度能否被重复子串的长度整除。n 是字符串 s 的长度,(n - kmplist[-1]) 表示重复子串的长度,因为 KMP 算法的 kmplist[-1] 表示了字符串 s 中重复子串的长度。如果 n 能够被 (n - kmplist[-1]) 整除,说明存在重复子串。 - 双指针
- 栈
try和except的用法注意。一般概率比较大的时候用try。 - 双端队列经典题
这种方法的关键在于双端队列的使用,它保持了一个有效的递减序列。队列的头部总是当前窗口最大值的索引,每次窗口滑动时,只需查看队列头部的索引对应的值即可。这样可以在O(n)的时间复杂度内解决问题,其中n是数组的长度。 - 小根堆
详细看看堆的用法。注意堆的heapreplace和heappush用法。 - 二叉树的迭代遍历
- 二叉树的层序遍历
打印从右往左看的所有节点就是用层序遍历,遍历每一层,如果遍历到最右边,就把该节点放到res中。