时间:2019-08-03 21:00 - 2019-08-05 21:00
讨论&CR时间: 2019-08-05 21:00 - 2019-08-05 22:30
-
【数组】 实现一个支持动态扩容的数组
-
- 实现一个大小固定的有序数组,支持动态增删改操作
- 实现两个有序数组合并为一个有序数组
- 学习哈希表**,并完成leetcode上的两数之和(1)及Happy Number(202)!(要求全部用哈希**实现!)(选做)(注意:在第四天会进行继续学习)
-
【链表】
-
- 实现单链表、循环链表、双向链表,支持增删操作
- 实现单链表反转
- 实现两个有序的链表合并为一个有序链表
- 实现求链表的中间结点
-
练习:
-
-
Three Sum(求三数之和)
-
Majority Element(求众数)
-
Missing Positive(求缺失的第一个正数)[作为可选]
-
Linked List Cycle I(环形链表)
-
Merge k Sorted Lists(合并 k 个排序链表)
-
时间:2019-08-05 21:00 - 2019-08-09 21:00
-
栈
-
- - 用数组实现一个顺序栈
- - 用z链表实现一个链式栈
- - 编程模拟实现一个浏览器的前进、后退功能
-
队列
-
- - 用数组实现一个顺序队列
- - 用链表实现一个链式队列
- - 实现一个循环队列
-
递归
-
- - 编程实现斐波那契数列求值 f(n)=f(n-1)+f(n-2)
- - 编程实现求阶乘 n!
- - 编程实现一组数据集合的全排列
-
对应的 LeetCode 练习题
-
-
- 栈
-
- - Valid Parentheses(有效的括号)
- - Longest Valid Parentheses(最长有效的括号)
- - Evaluate Reverse Polish Notatio(逆波兰表达式求值)
-
- 队列
-
- - Design Circular Deque(设计一个双端队列)
- - Sliding Window Maximum(滑动窗口最大值)
-
- 递归
-
- - Climbing Stairs(爬楼梯)
-
时间:2019-08-09 21:00 - 2019-08-12 21:00
-
【排序】
-
- - 实现归并排序、快速排序、插入排序、冒泡排序、选择排序、堆排序(完成leetcode上的返回滑动窗口中的最大值(239),这是上一期第三天的任务进行保留(涉及队列可以对第二天进行整理复习)) 编程实现 O(n) 时间复杂度内找到一组数据的第 K 大元素
-
【二分查找】
-
- - 实现一个有序数组的二分查找算法 实现模糊二分查找算法(比如大于等于给定值的第一个元素)
-
【对应的 LeetCode 练习题】
-
- Sliding Window Maximum(滑动窗口最大值)
- 英文版:https://leetcode.com/problems/sliding-window-maximum/
- 中文版:https://leetcode-cn.com/problems/sliding-window-maximum/
-
- Sqrt(x) (x 的平方根)
- 英文版:https://leetcode.com/problems/sqrtx/
- 中文版:https://leetcode-cn.com/problems/sqrtx/
-
..