# 面试题 这部分内容是算法问题合集,题目大多来自网络和书籍。我做了下简单的整理,很多题做了一些思路标记。 ## [字符串](1%20字符串.md) 计算机处理的数据除了数值,就是字符。字符处理的常见问题包括: * 单词反转 * 回文判断 * 字符串的压缩 * 字符串的排列和组合 * 字符串比较 * 子串 数组,字符串问题常用解题套路:二分查找、 快慢指针、 左右指针、 滑动窗口、 前缀和数组、 差分数组。 ## [链表](2%20链表.md) 链表处理的常见问题包括: * 链表反转 * 链表中是否有环 * 删除链表中的p节点,在p节点前面插入节点q, 要求O(1)复杂度 * 2个链表相交 * 2个链表合并 ## [栈和队列](3%20堆和栈.md) 这是最基本数据结构,相对容易理解。 ## [数值问题](4%20数值问题.md) 这部分都是一些数学几何计算方面的问题。 主要有: * 位运算 * 随机数 * 大数问题 ## [数组数列问题](5%20数组数列问题.md) 这部分的问题都集中在数据集合上。主要有: * 数组排序 * top-k * 子数组 * 多个数组合并,交集 ## [矩阵](6%20矩阵.md) 这部分都是矩阵和二维数组相关的问题。 ## [二叉树](7%20二叉树.md) 常见问题 * 遍历 * 翻转 * 子树 解题思路:递归 ## [图](8%20图.md) 图相关的问题 ## 智力思维训练 ## [《剑指offer》](剑指offer/README.md) 《剑指offer》里面给出了50到高质量的算法问题,很有学习的必要。 ## [《编程之美》](编程之美/README.md) [九度OJ](http://ac.jobdu.com/index.php) [leetcode 题目](https://leetcode.com/)