算法的特征

  • 输入
  • 输出
  • 有穷性
  • 确定性
  • 可行性

算法的基本要求

  • 正确性
  • 可读性
  • 健壮性
  • 时间复杂度
  • 空间复杂度

极客时间算法

数组、链表
对战、队列
优先队列
哈希表
树、二叉树、二叉搜索树
二叉树遍历
分治、递归
贪心算法
广度优先搜索、深度优先搜索
剪枝
二分查找
字典树
位运算的运用
动态规划
并查集
LRU Cache
布隆过滤器
面试经验分享

大纲

基础

基础编程模型

  1. Java程序的数据结构
  2. 原始数据类型与表达式
  3. 语句
  4. 简便记法
  5. 数组
  6. 静态方法
  7. API
  8. 字符串
  9. 输入输出
  10. 二分查找

    数据抽象

  11. 使用抽象数据模型

  12. 抽象数据类型举例
  13. 抽象数据类型的实现
  14. 更多抽象数据类型的实现
  15. 数据类型的设计

    背包、队列和栈

  16. API

  17. 集合类数据类型的实现
  18. 链表
  19. 综述