Skip to content

Latest commit

 

History

History
 
 

Algorithms Job Interview

这部分内容是算法问题合集,题目大多来自网络和书籍。我做了下简单的整理,很多题做了一些思路标记。

字符串

计算机处理的数据除了数值,就是字符。字符处理的常见问题包括:

  • 单词反转
  • 回文判断
  • 字符串的压缩
  • 字符串的排列和组合
  • 字符串比较
  • 子串

链表

链表处理的常见问题包括:

  • 链表反转
  • 链表中是否有环
  • 删除链表中的p节点,在p节点前面插入节点q, 要求O(1)复杂度
  • 2个链表相交
  • 2个链表合并

栈和队列

这是最基本数据结构,相对容易理解。

数值问题

这部分都是一些数学几何计算方面的问题。 主要有:

  • 位运算
  • 随机数
  • 大数问题

数组数列问题

这部分的问题都集中在数据集合上。主要有:

  • 数组排序
  • top-k
  • 子数组
  • 多个数组合并,交集

矩阵

这部分都是矩阵和二维数组相关的问题。

二叉树

  • 遍历
  • 翻转
  • 子树

图相关的问题

海量数据处理

海量处理问题常用的分析解决问题的思路是:

  • Hash映射/分而治之
  • Bitmap
  • Bloom filter(布隆过滤器)
  • Trie树
  • 数据库索引
  • 倒排索引(Inverted Index)
  • 双层桶划分
  • 外排序
  • simhash算法
  • 分布处理之Mapreduce

智力思维训练

###【剑指offer】

《剑指offer》里面给出了50到高质量的算法问题,很有学习的必要。

###【编程之美】