第一:复杂度估算和排序算法(上)
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)单调栈结构
第三:Morris遍历和sortedMap
1)二叉树的Morris遍历
2)跳表结构
3)AVL树和红黑树结构
【今日头条、拼多多题目】
1.分类算法的理解
1)决策树的原理
2)支持向量机
3)逻辑斯蒂回归
4)聚类算法的理解
5)均值聚类,可选的参数,如果确定聚类个数
6)聚类和分类的异同,举例说明
7)特征选择算法的理解
2.集成提升的理解
1)xgboost
2)gbdt
【面试题目】
1.二叉树前序递归遍历算法(手写代码)
2.二叉树的前中后遍历
3.二叉树的文件存储,也就是序列化。
4.二叉树遍历,描述下层序遍历。
5.二维数组,每行递增,每列递增,任意交换其中的两数,发现并恢复。
6.二维数组,每行递增,每列递增,实现查找。
7.二维数组,每行递增,每列递增,求第k大的数。
8.什么样的数据结构可以满足多次插入删除,取最小数,给出时间复杂度。
9.介绍二叉树前序遍历非递归遍历算法(手写代码)
10.介绍大顶堆和小顶堆
11.从一组数中找出和为sum的三个数(leetcode)
12.冒泡排序(手写代码)
13.写 find 函数,在目标串中匹配模式串(要考虑中文字符的情况)
14.写一个二叉树的非递归的后续遍历
15.写一个简单的正则匹配表达式(将文本中的123.4匹配出来)
16.写个动态规划,最长公共子序列
17.判断一个字符串是否为另外一个字符串旋转之后的字符串
18.前k大的数
19.单链表的翻转
20.去掉连续的重复数字,输出新数组,例如:1,2,2,2,1,3,5——> 3,5。
21.去除字符串S1中的字符使得最终的字符串S2不包含’ab’和’c’。(Code)
22.合法括号匹配
23.在一个字符串中,找出最长的无重复字符的字串
24.在二叉树结点结构中加一个指针域,使其指向层次遍历的下一个结点,特别地,每一层的最后一个结点为空。(Code)
25.堆排序(手写代码)
26.堆是怎么调整的。
24.复杂链表的复制
大数据题目
1.100亿数字,怎么统计前100大的?
2.10亿个url,每个url大小小于56B,要求去重,内存4G。
3.1KW句子算相似度(还是那套分块+hash/建索引,但是因为本人不是做这个的,文本处理根本说一片空白,所以就不误导大家了),之后就是一直围绕大数据的题目不断深化。
Q1:给定一个1T的单词文件,文件中每一行为一个单词,单词无序且有重复,当前有5台计算机。请问如何统计词频?
Q2:每台计算机需要计算200G左右的文件,内存无法存放200G内容,那么如何统计这些文件的词频?
Q3:如何将1T的文件均匀地分配给5台机器,且每台机器统计完词频生成的文件只需要拼接起来即可(即每台机器统计的单词不出现在其他机器中)
4.一个大文件A和一个小文件B,里面存的是单词,要求出在文件B中但不在文件A中的单词。然后大文件A是无法直接存到内存中的。
5.一道题目是如果有一个人注册一个qq,如何保证这个qq号码和之前已存在的qq号码不重复呢?
6.扔硬币,连续出现两次正面即结束,问扔的次数期望
7.有100W个集合,每个集合中的word是同义词,同义词具有传递性, 比如集合1中有word a, 集合2中也有word a, 则集合1,2中所有词都是同义词,对这100W个集合进行归并,同义词都在一个集合当中。
8.有几个 G 的文本,每行记录了访问 ip 的 log ,如何快速统计 ip 出现次数最高的 10 个 ip,如果只用 linux 指令又该怎么解决;
海量数据的topk问题。
如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java交流:群714526711,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
有疑问加站长微信联系(非本文作者))