¶预习知识点:
- 红黑树(上):为什么工程中都用红黑树这种二叉树?
- 红黑树(下):掌握这些技巧,你也可以实现一个红黑树
- 搜索:如何用 A* 搜索算法实现游戏中的寻路功能?
- Trie 树:如何实现搜索引擎的搜索关键词提示功能?
- B+ 树:MySQL 数据库索引是如何实现的?
- 搜索:如何用 A* 搜索算法实现游戏中的寻路功能?
- 索引:如何在海量数据中快速查找某个数据?
¶预习题目:
6.字典树和并查集
¶Trie树的基本实现和特性
¶Trie树实战题目解析:单词搜索2
- https://leetcode-cn.com/problems/implement-trie-prefix-tree/#/description
- https://leetcode-cn.com/problems/word-search-ii/
¶并查集的基本实现、特性和实战题目解析
参考链接
实战题目
- https://leetcode-cn.com/problems/friend-circles
- https://leetcode-cn.com/problems/number-of-islands/
- https://leetcode-cn.com/problems/surrounded-regions/
6.高级搜索
¶剪枝的实现和特性
¶剪枝实战题目解析:数独
- https://leetcode-cn.com/problems/climbing-stairs/
- https://leetcode-cn.com/problems/generate-parentheses/
- https://leetcode-cn.com/problems/n-queens
- https://leetcode-cn.com/problems/valid-sudoku/description/
- https://leetcode-cn.com/problems/sudoku-solver/#/description
¶双向BFS的实现、特性和题解
- https://leetcode-cn.com/problems/word-ladder/
- https://leetcode-cn.com/problems/minimum-genetic-mutation/
¶启发式搜索的实现、特性和题解
参考链接
实战题目
- https://leetcode-cn.com/problems/shortest-path-in-binary-matrix/
- https://leetcode-cn.com/problems/sliding-puzzle/
- https://leetcode-cn.com/problems/sudoku-solver/
6.红黑树和AVL树
¶本周作业
¶简单
¶中等
- https://leetcode-cn.com/problems/implement-trie-prefix-tree/#/description
- https://leetcode-cn.com/problems/friend-circles
- https://leetcode-cn.com/problems/number-of-islands/
- https://leetcode-cn.com/problems/surrounded-regions/
- https://leetcode-cn.com/problems/valid-sudoku/description/
- https://leetcode-cn.com/problems/generate-parentheses/
- https://leetcode-cn.com/problems/word-ladder/
- https://leetcode-cn.com/problems/minimum-genetic-mutation/
¶困难
- https://leetcode-cn.com/problems/word-search-ii/
- https://leetcode-cn.com/problems/n-queens
- https://leetcode-cn.com/problems/sudoku-solver/#/description
¶下周预习
¶预习知识点:
- 位图:如何实现网页爬虫中的 URL 去重功能?
- 概率统计:如何利用朴素贝叶斯算法过滤垃圾短信?
- 排序(上):为什么插入排序比冒泡排序更受欢迎?
- 排序(下):如何用快排思想在 O(n) 内查找第 K 大元素?
- 线性排序:如何根据年龄给 100 万用户数据排序?
- 排序优化:如何实现一个通用的、高性能的排序函数?
- 堆和堆排序:为什么说堆排序没有快速排序快?
- 拓扑排序:如何确定代码源文件的编译依赖关系?
¶预习题目:
7.位运算
¶位运算基础及实战要点
¶位运算实战题目解析
参考链接
实战题目 / 课后作业
- https://leetcode-cn.com/problems/number-of-1-bits/
- https://leetcode-cn.com/problems/power-of-two/
- https://leetcode-cn.com/problems/reverse-bits/
- https://leetcode-cn.com/problems/n-queens/description/
- https://leetcode-cn.com/problems/n-queens-ii/description/
- https://leetcode-cn.com/problems/counting-bits/description/
7.布隆过滤器和LRU缓存
¶布隆过滤器的实现及应用
- 布隆过滤器的原理和实现
- 使用布隆过滤器解决缓存击穿、垃圾邮件识别、集合判重
- 布隆过滤器 Python 代码示例
- 布隆过滤器 Python 实现示例
- 高性能布隆过滤器 Python 实现示例
- 布隆过滤器 Java 实现示例 1
- 布隆过滤器 Java 实现示例 2
¶LRU Cache的实现、应用和题解
参考链接
实战题目 / 课后作业
7.排序算法
¶初级排序和高级排序的实现和特性
参考链接
- 十大经典排序算法
- 快速排序代码示例
- 归并排序代码示例
- 堆排序代码示例
- 直播课回顾: https://pan.baidu.com/s/1sFuZ8GjDCXy5mPCNLZhHxw 提取码: 2rdy
课后作业
用自己熟悉的编程语言,手写各种初级排序代码,提交到第 7 周学习总结中。
¶特殊排序及实战题目详解
参考链接
实战题目 / 课后作业
- https://leetcode-cn.com/problems/relative-sort-array/
- https://leetcode-cn.com/problems/valid-anagram/
- https://leetcode-cn.com/problems/design-a-leaderboard/
- https://leetcode-cn.com/problems/merge-intervals/
- https://leetcode-cn.com/problems/reverse-pairs/
¶本周作业
简单
- https://leetcode-cn.com/problems/number-of-1-bits/
- https://leetcode-cn.com/problems/power-of-two/
- https://leetcode-cn.com/problems/reverse-bits/
- 用自己熟悉的编程语言,手写各种初级排序代码,提交到第 7 周学习总结中。
- https://leetcode-cn.com/problems/relative-sort-array/
- https://leetcode-cn.com/problems/valid-anagram/
中等
- https://leetcode-cn.com/problems/lru-cache/#/
- https://leetcode-cn.com/problems/design-a-leaderboard/
- https://leetcode-cn.com/problems/merge-intervals/
困难
- https://leetcode-cn.com/problems/n-queens/description/
- https://leetcode-cn.com/problems/n-queens-ii/description/
- https://leetcode-cn.com/problems/reverse-pairs/
¶下周预习
¶预习知识点:
¶预习题目:
8.高级动态规划
¶动态规划、状态转移方程串讲
参考链接
课后作业
在第 8 周学习总结中,写出不同路径 2 这道题目的状态转移方程。
¶高级动态规划题目详解
参考链接
课后作业
- https://leetcode-cn.com/problems/longest-increasing-subsequence/
- https://leetcode-cn.com/problems/decode-ways/
- https://leetcode-cn.com/problems/longest-valid-parentheses/
- https://leetcode-cn.com/problems/maximal-rectangle/
- https://leetcode-cn.com/problems/distinct-subsequences/
- https://leetcode-cn.com/problems/race-car/
8.字符串算法
¶字符串基础知识和引申题目
参考链接
字符串基础问题
- https://leetcode-cn.com/problems/to-lower-case/
- https://leetcode-cn.com/problems/length-of-last-word/
- https://leetcode-cn.com/problems/jewels-and-stones/
- https://leetcode-cn.com/problems/first-unique-character-in-a-string/
- https://leetcode-cn.com/problems/string-to-integer-atoi/
字符串操作问题
- https://leetcode-cn.com/problems/longest-common-prefix/description/
- https://leetcode-cn.com/problems/reverse-string
- https://leetcode-cn.com/problems/reverse-string-ii/
- https://leetcode-cn.com/problems/reverse-words-in-a-string/
- https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/
- https://leetcode-cn.com/problems/reverse-only-letters/
异位词问题
- https://leetcode-cn.com/problems/valid-anagram/
- https://leetcode-cn.com/problems/group-anagrams/
- https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/
回文串问题
- https://leetcode-cn.com/problems/valid-palindrome/
- https://leetcode-cn.com/problems/valid-palindrome-ii/
- https://leetcode-cn.com/problems/longest-palindromic-substring/
¶高级字符串算法
最长子串、子序列问题
- https://leetcode-cn.com/problems/longest-common-subsequence/
- https://leetcode-cn.com/problems/edit-distance/
- https://leetcode-cn.com/problems/longest-palindromic-substring/
字符串 +DP 问题
- https://leetcode-cn.com/problems/regular-expression-matching/
- https://leetcode-cn.com/problems/regular-expression-matching/solution/ji-yu-guan-fang-ti-jie-gen-xiang-xi-de-jiang-jie-b/
- https://leetcode-cn.com/problems/wildcard-matching/
- https://leetcode-cn.com/problems/distinct-subsequences/
¶字符串匹配算法
参考链接
课后作业
- https://leetcode-cn.com/problems/first-unique-character-in-a-string/
- https://leetcode-cn.com/problems/string-to-integer-atoi/
- https://leetcode-cn.com/problems/reverse-string-ii/
- https://leetcode-cn.com/problems/reverse-words-in-a-string/
- https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/
- https://leetcode-cn.com/problems/reverse-only-letters/
- https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/
- https://leetcode-cn.com/problems/longest-palindromic-substring/
- https://leetcode-cn.com/problems/isomorphic-strings/
- https://leetcode-cn.com/problems/valid-palindrome-ii/
- https://leetcode-cn.com/problems/wildcard-matching
- https://leetcode-cn.com/problems/longest-valid-parentheses
- https://leetcode-cn.com/problems/distinct-subsequences/
¶本周作业
简单
- https://leetcode-cn.com/problems/first-unique-character-in-a-string/
- https://leetcode-cn.com/problems/reverse-string-ii/
- https://leetcode-cn.com/problems/reverse-words-in-a-string/
- https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/
- https://leetcode-cn.com/problems/reverse-only-letters/
- https://leetcode-cn.com/problems/isomorphic-strings/
- https://leetcode-cn.com/problems/valid-palindrome-ii/
中等
- 在第 8 周学习总结中,写出不同路径 2 这道题目的状态转移方程。
- https://leetcode-cn.com/problems/longest-increasing-subsequence/
- https://leetcode-cn.com/problems/decode-ways/
- https://leetcode-cn.com/problems/string-to-integer-atoi/
- https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/
- https://leetcode-cn.com/problems/longest-palindromic-substring/
困难