2024.03.25_学习日记

天气:晴
学习地点:学校
学习时长:10h

学习内容

  1. 哈希表
    alt text
  2. 快乐数
    alt text
    想求数字的每一个值可以把数字转化成字符串再遍历
  3. 四数相加
    alt text
  4. 四数之和=target
    这个题记得注意剪枝和continue以及break的使用。
  5. KMP lc28题
    alt text
    alt text
  6. KMP题
    alt text
    (n % (n - kmplist[-1]) == 0): 这部分判断是判断字符串的长度能否被重复子串的长度整除。n 是字符串 s 的长度,(n - kmplist[-1]) 表示重复子串的长度,因为 KMP 算法的 kmplist[-1] 表示了字符串 s 中重复子串的长度。如果 n 能够被 (n - kmplist[-1]) 整除,说明存在重复子串。
  7. 双指针
    alt text

  8. alt text
    try和except的用法注意。一般概率比较大的时候用try。
  9. 双端队列经典题
    alt text
    这种方法的关键在于双端队列的使用,它保持了一个有效的递减序列。队列的头部总是当前窗口最大值的索引,每次窗口滑动时,只需查看队列头部的索引对应的值即可。这样可以在O(n)的时间复杂度内解决问题,其中n是数组的长度。
  10. 小根堆
    alt text
    详细看看堆的用法。注意堆的heapreplace和heappush用法。
  11. 二叉树的迭代遍历
    alt text
    alt text
    alt text
  12. 二叉树的层序遍历
    alt text
    打印从右往左看的所有节点就是用层序遍历,遍历每一层,如果遍历到最右边,就把该节点放到res中。