最全BAT算法面试100题:阿里,百度,腾讯,京东,美团,今日头条
第一:复杂度估算和排序算法(上)
1)时间复杂度和空间复杂度
2)认识对数器
3)冒泡排序
4)选择排序
5)插入排序
6)如何分析递归过程的时间复杂度
7)归并排序
8)小和问题
第二:复杂度估算和排序算法(下)
1)荷兰国旗问题
2)随机快速排序
3)堆结构与堆排序
4)认识排序算法的稳定性
5)认识比较器
6)桶排序
7)计数排序
8)基数排序
9)数组排序后的最大差值问题
10)排序算法在工程中的应用
第三:章栈,队列,链表,数组和矩阵结构
1)栈结构
2)队列结构
3)链表结构
4)数组结构
5)矩阵结构
6)二分搜索的扩展
第四:二叉树结构
1)二叉树结构
2)二叉树的递归与非递归遍历
3)打印二叉树
4)判断搜索二叉树
5)判断完全二叉树
6)判断平衡二叉树
7)折纸问题
8)二叉树节点的前驱节点与后继节点
9)二叉树的序列化和反序列化
第五:和哈希函数有关的三个结构与并查集
1)哈希函数与哈希表
2)布隆过滤器详解
3)一致性哈希结构
4)并查集结构与应用(岛问题)
第六:章图算法
1)图结构的表示方法
2)图的深度优先遍历与宽度优先遍历
3)拓扑排序问题
4)最小生成树问题
5)单源最短路径问题
第七:前缀树,堆结构和贪心算法
1)前缀树
2)堆结构的扩展与应用
3)介绍贪心算法及其相关题目
4)在面试中如何快速的尝试出贪心策略
第八:暴力递归到动态规划
1)递归
2)动态规划
3)如何把暴力递归套路的变成动态规划
算法高级:
第一:KMP算法和Manacher算法
1)KMP算法及其扩展面试题目
2)Manacher算法及其扩展面试题目
第二:窗口内最大值的更新结构和单调栈结构
1)窗口内最大值的更新结构
2)单调栈结构
第三:莫里斯遍历和SortedMap的
1)二叉树的莫里斯遍历
2)跳表结构
3)AVL树和红黑树结构
【今日头条,拼多多题目】
分类算法的理解
- 决策树的原理
- 支持向量机
- 逻辑斯蒂回归
聚类算法的理解
- 均值聚类,可选的参数,如果确定聚类个数
- 聚类和分类的异同,举例说明
特征选择算法的理解
集成提升的理解
- xgboost
- gbdt
【面试题目】
- 二叉树前序递归遍历算法(手写代码)
- 二叉树的前中后遍历
- 二叉树的文件存储,也就是序列化。
- 二叉树遍历,描述下层序遍历。
- 二维数组,每行递增,每列递增,任意交换其中的两数,发现并恢复。
- 二维数组,每行递增,每列递增,实现查找。
- 二维数组,每行递增,每列递增,求第ķ大的数。
- 什么样的数据结构可以满足多次插入删除,取最小数,给出时间复杂度。
- 介绍二叉树前序遍历非递归遍历算法(手写代码)
- 介绍大顶堆和小顶堆
- 从一组数中找出和为总和的三个数(本文给出了)
- 冒泡排序(手写代码)
- 写找函数,在目标串中匹配模式串(要考虑中文字符的情况)
- 写一个二叉树的非递归的后续遍历
- 写一个简单的正则匹配表达式(将文本中的123.4匹配出来)
- 写个动态规划,最长公共子序列
- 判断一个字符串是否为另外一个字符串旋转之后的字符串
- 前ķ大的数
- 单链表的翻转
- 去掉连续的重复数字,输出新数组,例如:1,2,2,2,1,3,5 - > 3,5。
- 去除字符串S1中的字符使得最终的字符串S2不包含 'AB' 和 'C'。(编号)
- 合法括号匹配
- 在一个字符串中,找出最长的无重复字符的字串
- 在二叉树结点结构中加一个指针域,使其指向层次遍历的下一个结点,特别地,每一层的最后一个结点为空。(编号)
- 堆排序(手写代码)
- 堆是怎么调整的。
- 复杂链表的复制
大数据题目
- 100亿数字,怎么统计前100大的?
- 10亿个地址,每个地址大小小于56B,要求去重,内存4G。
- 1KW句子算相似度(还是那套分块+散列/建索引,但是因为本人不是做这个的,文本处理根本说一片空白,所以就不误导大家了),之后就是一直围绕大数据的题目不断深化。
- Q1:给定一个1T的单词文件,文件中每一行为一个单词,单词无序且有重复,当前有5台计算机请问如何统计词频?
- Q2:每台计算机需要计算200G左右的文件,内存无法存放200G内容,那么如何统计这些文件的词频?
- Q3:如何将1T的文件均匀地分配给5台机器,且每台机器统计完词频生成的文件只需要拼接起来即可(即每台机器统计的单词不出现在其他机器中)
- 一个大文件甲和一个小文件B,里面存的是单词,要求出在文件乙中但不在文件甲中的单词。然后大文件阿是无法直接存到内存中的。
- 一道题目是如果有一个人注册一个QQ号,如何保证这个QQ号码和之前已存在的QQ号码不重复呢?
- 扔硬币,连续出现两次正面即结束,问扔的次数期望
- 有100W个集合,每个集合中的字是同义词,同义词具有传递性,比如集合1中有字a,集合2中也有字a,则集合1,2中所有词都是同义词,对这100W个集合进行归并,同义词都在一个集合当中。
- 有几个G的文本,每行记录了访问ip的日志,如何快速统计ip出现次数最高的10个ip,如果只用linux指令又该怎么解决;
- 海量数据的TOPK问题。