- 各种排序算法
- 基础数据结构和算法的实现:堆、二叉树、图
- 基础数据结构的使用:链表、栈、队列、哈希表、图
- 基础算法:深度优先、广度优先、二分查找、递归
- 基本算法思想:递归、分治、回溯搜索、贪心、动态规划
- 设计一个O(nlogn)的算法
- 无需考虑额外的空间
- 数据规模大概是10000
-
遍历常见的算法思路
-
遍历常见的数据结构
-
空间和时间的交换(哈希表)
-
预处理信息(排序)
-
在瓶颈处寻找答案:O(nlogn) + O(n^2) ; O(n^3)
-
极端条件的判断
- 数组为空?字符串为空?数量为0?指针为NULL?
-
变量名标准化
-
模块化函数(复用性)
如果想要在1s之内解决问题:
O(n^2)的算法可以处理大约 10^4 级别的数据
O(n)的算法可以处理大约 10^8 级别的数据
O(nlogn)的算法可以处理大约 10^7 级别的数据