2018李老师教你如何面试算法leetcode刷题技巧(视频+课件+代码)

作者: admin 分类: 机器学习和人工智能教程合集 发布时间: 2018-08-08 02:24

课程大纲:

第一课:链表

1. 链表的必备知识要点(包括基础知识、刷题中使用的STL等知识)
2. 链表逆序(LeetCode 92,206. Reverse Linked List 1,2)
3. 求两个链表的交点(LeetCode 160. Intersection of Two Linked Lists)
4. 链表的节点交换(LeetCode 24. Swap Nodes in Pairs)
5. 链表求环(LeetCode 141,142. Linked List Cycle 1,2)
6. 链表重新构造(LeetCode 86. Partition List)
7. 复杂的链表复制(LeetCode 138. Copy List with Random Pointer)
8. 排序链表合并(2个与多个) (LeetCode 21,23 Merge Two(k) Sorted ListsLeetCode)

第二课:栈、队列、堆

1. 栈、队列知识要点与实现(数组、链表)
2. 使用队列实现栈(LeetCode 232. Implement Queue using Stacks)
3. 使用栈实现队列(LeetCode 225. Implement Stack using Queues)
4. 包含min函数的栈(LeetCode 155. Min Stack)
5. 简单的计算器(栈的应用)( LeetCode 224. Basic Calculator)
6. 堆(优先级队列)知识要点与实现
7. 数组中第K大的数(堆的应用) (LeetCode 215. Kth Largest Element in an Array)
8. 寻找中位数(堆的应用)( LeetCode 295 Find Median from Data Stream)

第三课:贪心

1. 贪心算法知识要点,刷题必备的STL知识
2. 贪心题目1(LeetCode 455. Assign Cookies)
3. 贪心题目2(LeetCode 402. Remove K Digits)
4. 贪心题目3(LeetCode 134. Gas Station)
5. 贪心题目4(LeetCode 135. Candy)
6. 贪心题目5(LeetCode 502. IPO)
7. 贪心题目6(LeetCode 321. Create Maximum Number)
8. 贪心题目7(codeforces 582A GCD Table)

第四课:递归、分制、回溯

1. 递归的知识要点,回溯算法
2. 生成组合数(LeetCode 39. Combination Sum, LeetCode 40. Combination Sum II)
3. 生成排列数(LeetCode 46. Permutations, LeetCode 47. Permutations II)
4. N皇后问题(LeetCode 51. N-Queens, LeetCode 52. N-Queens II)
5. 分制算法知识要点
6. 快速排序算法与经典实现
7. 不同的加括号方法(LeetCode 241. Different Ways to Add Parentheses)
8. 两个数组的中位数(LeetCode 4. Median of Two Sorted Arrays)

第五课:树与图

1. 树与图的数据结构与基本算法
2. 树遍历的回调函数实现,并使用自动机概念实现非递归树前、中、后遍历
3. 树与链表的转换(LeetCode 114. Flatten Binary Tree to Linked List)
4. 最近的公共祖先(LeetCode 236. Lowest Common Ancestor of a Binary Tree)
5. 树的层次遍历应用(LeetCode 199. Binary Tree Right Side View)
6. 树的改造(LeetCode 117. Populating Next Right Pointers in Each Node 1,2)
7. 图的复制(LeetCode 133. Clone Graph)
8. 图的搜索与应用(LeetCode 207.Course Schedule)

第六课:二分查找、二叉排序树、位运算的应用

1. 二分查找、二叉排序树的知识要点
2. 数组的二分查找(LeetCode 33,81 Search in Rotated Sorted Array 1,2)
3. 区间二分查找(LeetCode 34. Search for a Range)
4. 排序链表转换为二叉排序树(LeetCode 109. Convert Sorted List to B- Search Tree)
5. 二叉排序树的遍历与改造(LeetCode 538 Convert BST to Greater Tree)
6. 二叉排序树中的第K大的数(LeetCode 230. Kth Smallest Element in a BST)
7. 位运算的知识要点
8. 使用位运算表示集合(LeetCode 78. Subsets)
9. 位运算应用题目(LeetCode 136,137,260. Single Number1,2,3)

第七课:哈希表与字符串

1. 哈希表与字符串知识要点
2. 哈希题目 (LeetCode 290. Word Pattern)
3. 哈希与字符串综合 (LeetCode 3.Longest Substring Without Repeating Characters)
4. 哈希与字符串综合 (LeetCode 76. Minimum Window Substring)
5. 哈希与字符串综合 (LeetCode 30. Substring with Concatenation of All Words)
6. 字符串题目 (LeetCode 459. Repeated Substring Pattern)
7. 字符串题目 (LeetCode 468. Validate IP Address)

第八课:搜索

1. 深度优先搜索与广度优先搜索算法
2. 深搜题目 (LeetCode 200. Number of Islands)
3. 深搜题目 (LeetCode 473. Matchsticks to Square)
4. 深搜题目 (LeetCode 491. Increasing Subsequences)
5. 广搜题目 (LeetCode 126,127 Word Ladder 1,2)
6. 广搜题目 (LeetCode 417. Pacific Atlantic Water Flow)
7. 广搜题目 (LeetCode 407. Trapping Rain Water II)

第九课:动态规划

1. 动态规划知识要点
2. 动态规划题目1(LeetCode 120. Triangle)
3. 动态规划题目2(LeetCode 53. Maximum Subarray)
4. 动态规划题目3(LeetCode 198,213. House Robber 1,2)
5. 动态规划题目4(LeetCode 322. Coin Change)
6. 动态规划题目5(LeetCode 72. Edit Distance)
7. 动态规划题目6(LeetCode 174. Dungeon Game)
8. 动态规划题目7(codeforces 711C Coloring Trees)

第十课:复杂数据结构

1. Trie树的构造与基本算法
2. Trie树的构造 (LeetCode 208. Implement Trie (Prefix Tree))
3. Trie树的应用 (LeetCode 212. Word Search II)
4. 并查集的基本算法
5. 并查集的应用 (LeetCode 547. Friend Circles)
6. 线段树与树状数组
7. 线段树与树状数组的应用(LeetCode 307. Range Sum Query – Mutable)

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

更多阅读