写一个LRU的缓存,需要完成超时淘汰和LRU淘汰。
17 第四题:一个二叉树,找到二叉树中最长的一条路径。
第一题:写一个层序遍历。
13 第二题:写一个插入树节点到一颗排序树的插入方法,使用递归方式找到插入位置即可。
14 第三题:一个有向图用邻接矩阵表示,并且是有权图,现在问怎么判断图中有没有环。
1 写一个题,找一个无序数组的中位数
2 写了个快排,然后让我找到无序数组第k大的一个数,我说先排序再找,实际上可以用快排的partition函数。
3 快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少,nlgn。
,一个二维矩阵进行逆置操作,也就是行变列列变行
写一个二叉树中最大二叉搜索树
一个为自然数的字符串数组,求第i个位置的字符,不能用直接的str[i]定位
算法题:乱序数组中找到排序之后的最大间隔,要求时间复杂度低于n*logn
旋转数组查找
非递归方法写二叉树后序遍历
算法题:1.最大堆实现
2.最大连续子序列和,并返回开始和结束的位置
4.推导softmax的梯度,和tanh的梯度(求导~)
4.求两个数的汉明距离。
5.给一个二叉搜索树,和一个区间,删掉不在区间内的节点。
判断一个二叉树是否为二叉搜索树。优化空间
abaaabbbaaab
要求O(N)算法,求最长子串,包含相同数目的a和b字符
15分钟写完动归
1、已知rand3函数,希望生成一个rand7函数(有意思)
2、求二叉树哪一个点到其他所有点的路径总和最小,树的重心
1、n个数的前k大,快排partition,堆排都行
2、two sum(升级版的three sum没考啊)
有一个单链表,奇数位是升序的,偶数位是降序的,要求进行给它进行排序
求二叉树的最长路径,路径指任意结点到结点之间的最短距离
求二叉树是否存在和为N的路径
给两个数组(长度可能不等),要求循环输出,如
A=1,2,3
B=A,B,C,D,
就要输出1A2B3C1D2A3B…
这个很简单的,维护两个下标变量ai,bi,自增时取模就行了,如
ai = (ai+1)%A.length
已知f(x)的定义域在正整数,值域在正整数,单调递增。
给定y,求t,使得 |f(t)-y| 最小
给一个只包含‘(’ 和‘)’的字符串,求最长合法子串
二叉树输出给定节点到目标节点的路径
寻找两个字符串中只有首尾字符相同的所有子串,例如 ABCDE 和 ADCAE中包含(ABC–ADC)以及(CDE–CAE)
二叉树最大深度
地图中找出大陆的个数(一道BFS题)
2、编程题(链表反转,二叉树中序遍历递归+非递归)
3、3种颜色砖块,单位长宽,铺满单位宽,长m的地板有多少种铺法?
根据二叉树的先序遍历和中序遍历恢复二叉树(那几个组合可以恢复出二叉树);
二叉搜索树求第k大的值
单链表排序,一开始讲思路,然后问空间,时间复杂度
C++写一个线程安全的栈
单链表两两翻转
54张牌,分成三墩,每墩18张,大小王在一堆的概率,写式子
Top k的方法,分析了partion方法的时间复杂度,不会!!!然后分析出来是个等比数列求和
集合求组合
给一个数组,找出从最小值开始的第一个缺失的数字,时间复杂度O(n)
树的前序遍历非递归
2、算法题:输入n个整数,找出其中最大的k个数
3、算法题:给一个整数数组和一个目标值,找出数组中和为目标值的两个数
3、算法题:求数组中连续子数组的最大和
4、算法题:使用最小花费爬楼梯,leetcode746题原题
5、写个快排,为什么要用三数取中法,好处是什么
1.回文字符窜
a.采用stack
b.双指针左右遍历交换字符
2.判断一个字符串最多删除一个字符,能否变成回文
a.递归实现
b.循环实现
求a.b独立且服从0-1均匀分布,求|a-b|的期望,第二题 一个先严格递增再严格递减的数组找一个数 一共1小时
fm的公式推导,怎么写成矩阵形式
句子翻转
leetcode第一题两数之和、lintcode max tree
- 最长公共子序列(LCS)问题. 动态规划
- 找出二叉树中任意两个节点的最低公共根节点, 如果树是BST呢. 深度优先搜索+二分查找树性质
- 10亿条64B长的URL, 限定1G内存, 做计数, 如果要TopN的话呢. 哈希分桶+堆排序时间复杂度
- 用户行为日志有UID和时间戳, 设定一个session间隔. 离线及在线地计算用户的平均session长度
- 之前做过标签推荐系统, 详细讲一下架构和自己设计的算法. 算法流程是行为评分+指数衰减+线性归一化+余弦相似度/皮尔逊相关性+TF-IDF打压
链表逆序和二叉树深度
1.字符串a包含串b吗
https://wizardforcel.gitbooks.io/the-art-of-programming-by-july/content/01.02.html
https://zhuanlan.zhihu.com/p/61331821
2.最长无重复字符的子串
https://www.cnblogs.com/grandyang/p/4480780.html
3.头条面试—奇数位升序偶数位降序链表排序
https://www.cnblogs.com/DarrenChan/p/8764608.html
4.打印二叉树的左边界
5.输入一个数据流(4,3,10),请依次输出当前数据的中位数
声明一个链表去存储这些数据,并返回链表的中位数(ON)
6.手撕二叉树层次遍历
7.连续子序列最大的和
算法:求无序数组中第k大的数(quick select)
算法:求旋转数组找最小值(二分)
算法:判断二叉树是否镜像(递归)
复杂链表的复制
二叉树转双向链表
LRU Cache
lc里最长上升子序列的变形题。
实现输入英文单词联想的功能
矩阵旋转,要求空间复杂度O(1)
无序的数组的中位数。要求时间复杂度尽可能的小
算法:最长回文子序列
算法1:字符串的全排列
算法2:手写消费者生产者,只能用基础的list这些
第一道求实数平方根。
这题好啊,我上来就有两种解法。二分嘛,咔咔咔。然后报错了。原来是初始值设置错了。再加上我平时闲着没事,还有个牛顿迭代法,我就提了一下。然后用了10分钟推算牛顿迭代法。
第二道,链表题。
奇数位升序,偶数位降序,让排成升序。
算法题:生成全排列,非递归中序遍历二叉树
算法:最小编辑距离。(运气来了,我刚好在几天前刷到原题,不然凉凉。就算这样,当场写转移方程还是漏了一个条件)
两个三十六进制字符串的相加
一个Unix的路径,简化这个路径,Leetcode上有原题
给一个数n,求所有和等于这个数的连续子序列,比如15=1+2+3+4+5=4+5+6=8+7,所以输出3.
手撕代码:链表按段翻转
编程题:正则表达式匹配。剑指offer和leetcode都有。
被问到的算法题:
Leetcode 118
Leetcode 151
Leetcode 189
Leetcode 72
House Robber 打家劫舍
https://www.cnblogs.com/grandyang/p/4383632.html
https://www.nowcoder.com/discuss/229358?type=2&order=0&pos=237&page=1
https://www.nowcoder.com/discuss/218173?type=2&order=0&pos=261&page=1
https://www.nowcoder.com/discuss/210508?toCommentId=3324621
https://www.nowcoder.com/discuss/220966?type=2&order=0&pos=266&page=1
https://www.nowcoder.com/discuss/207290?type=2&order=0&pos=269&page=2
https://www.nowcoder.com/discuss/227743?type=2&order=0&pos=275&page=1
https://www.nowcoder.com/discuss/227673?type=2&order=0&pos=281&page=1
https://www.nowcoder.com/discuss/228811?type=2&order=0&pos=282&page=1
https://www.nowcoder.com/discuss/226960?type=2&order=0&pos=300&page=1
https://www.nowcoder.com/discuss/210508?type=2&order=0&pos=348&page=1
https://www.nowcoder.com/discuss/229358?type=2&order=0&pos=237&page=1
https://www.nowcoder.com/discuss/239350?type=2&order=0&pos=214&page=1
https://www.nowcoder.com/discuss/246858?type=2&order=0&pos=149&page=1
https://www.nowcoder.com/discuss/262576?type=2&order=0&pos=2&page=1
https://www.nowcoder.com/discuss/103068?type=2&order=0&pos=35&page=1
https://www.nowcoder.com/discuss/205630?type=2&order=0&pos=58&page=1
https://www.nowcoder.com/discuss/227808?type=2&order=0&pos=99&page=1
https://www.nowcoder.com/discuss/252124?type=2&order=0&pos=109&page=0
https://www.nowcoder.com/discuss/103807?type=2&order=0&pos=123&page=2
https://www.nowcoder.com/discuss/241769?type=2&order=0&pos=139&page=1
https://www.nowcoder.com/discuss/241523?type=2&order=0&pos=143&page=1
https://www.nowcoder.com/discuss/235500?type=2&order=0&pos=168&page=1
https://www.nowcoder.com/discuss/210036?type=2&order=0&pos=175&page=1
https://www.nowcoder.com/discuss/241121?type=2&order=0&pos=192&page=1
https://www.nowcoder.com/discuss/226652?type=2&order=0&pos=310&page=1
https://www.nowcoder.com/discuss/195640?type=2&order=0&pos=311&page=2
https://www.nowcoder.com/discuss/215883?type=2&order=0&pos=334&page=2
https://www.nowcoder.com/discuss/216672?type=2&order=0&pos=335&page=2
https://www.nowcoder.com/discuss/207092?type=2&order=0&pos=340&page=1
https://www.nowcoder.com/discuss/226782?type=2&order=0&pos=254&page=1
手写了sqrt和二叉树路径和
https://www.nowcoder.com/discuss/95654?type=2&order=0&pos=16&page=2
https://blog.csdn.net/xiezongsheng1990/article/details/79574892
找出一个字符串最长不包含重复字符的字串的长度
是两个栈实现队列(这个问题百度一面也问过),这个没啥问题
- 判断二叉树是否是镜像
- 输入“aaaaabbbbccc”,输出“a5b4c3”
- 还有一个也是字符串的问题,没写太
https://www.nowcoder.com/discuss/188438?type=2&order=0&pos=77&page=1
两个string A和B,判断A是否为B的字串
有序数组找到第一个小于0的数和第一个大于0的数
fork和循环结合后打印多少个字符
实现一个string类
矩阵左上角到右下角的最短路径和
实现一个智能指针
合并两个排序数组并去重
最长无重复子串
两个排序数组找中位数
string转float
算法题:两个链表相加,类似于大数加法的形式。
单向链表快排?
第二道算法leetcode 42,一道hard题目
算法题:一个正整数数组,寻找连续区间使得和等于target,简单的用两个指针做出来了
算法题:由长度为length的array表示的整数,允许相邻位数交换,求n步交换内能得到的最小整数
222. 完全二叉树的节点个数
223. GBDT的原理,怎么做多分类问题
224. XGBoost的基本思想,和GBDT的区别
225一亿个浮点数,大小不超过2^32,均匀分布在值域内,求最快的排序方法.
225. Edit Distance
226.然后做了一道算法题,求数x的开方,精确到小数点后一位,
1.给一个链表1->2->3->4->5->6->7 和 一个数字n
每n个反转一次链表。
如 n = 2时,2->1->4->3->6->5->7;n = 3时,3->2->1>6->5->4->7
2.罗马数字转整数 leetcode13
1.二叉树中的最大路径和,leetcode124
二叉树的序列化和反序列化
算法:二叉树镜像,时间复杂度,空间复杂度
算法:接雨水
问题:定义域值域都是正整数的单调递增函数f,给一个值y,找到使|f(x)-y|最小的x。
肯定是二分,但其实有很多细节值得注意。如定义域值域都是正整数,所以可以推出f(x)是不可能小于x的,应该是x^n的形式,所以开始搜索的范围就是ed=y。
手写代码:根据前序遍历和中序遍历还原二叉树,根据获得的前序遍历和中序遍历结果输出一颗二叉树(输出后续遍历)
输入:奇数位升序,偶数位降序
1 -> 80 -> 4 -> 60 -> 6 -> 40 -> 7 -> 2
输出:升序单链表
1 -> 2 -> 4 -> 6-> 7 -> 40 -> 60 -> 80
。算法题:1-n的数组,找出数组中缺少的数字(缺1数字个时,缺2个数字时)。
算法题:合并有序链表。
堆排序讲一下
建堆的时间复杂度
两道算法题:
leetcode 93
找出一个字符串中所有的回文子串
二叉树两个节点间的最长距离
重复次数最多的最长子串(即找到重复次数最多的子串,若有多个,输出最长的)
11. leetcode 227. Basic Calculator II (没做出来,讲了一下大概思路)
17.对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。
给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。
测试样例:
1->2->2->1
题目1. 多线程交替打印
题目2. 反转链表(递归和非递归方法)
题目: 实现 O(1) 的栈的 min()函数(双栈法)
7. 算法题:打印根节点到所有叶子节点的路径,挺简单的 dfs三分钟搞定~
8. 算法题:给定一个数组height[n] 表示山的高度,然后下雨了,水量够大,把山都淹了,问存了多少水?
https://www.nowcoder.com/discuss/274899?type=2&order=0&pos=43&page=1
https://www.nowcoder.com/discuss/244593?type=2&order=0&pos=34&page=5
头条:
https://www.nowcoder.com/discuss/188295?type=2&order=0&pos=13&page=2 w2v
https://www.nowcoder.com/discuss/233198?type=2&order=0&pos=54&page=1
https://www.nowcoder.com/discuss/220966?type=2&order=0&pos=440&page=1
https://www.nowcoder.com/discuss/233198?type=2&order=0&pos=54&page=1
https://www.nowcoder.com/discuss/227808?type=2&order=0&pos=69&page=1
https://www.nowcoder.com/discuss/218847?type=2&order=0&pos=341&page=1
https://www.nowcoder.com/discuss/229358?type=2&order=0&pos=346&page=1
https://www.nowcoder.com/discuss/226817?type=2&order=0&pos=396&page=1
https://www.nowcoder.com/discuss/218643?type=2&order=0&pos=411&page=1
https://www.nowcoder.com/discuss/208173?type=2&order=0&pos=431&page=3
.算法题:找出一个字符串最长不包含重复字符的字串的长度
遍历一遍vector,删除和target相等的元素
输出一个有序数组中一个数字的第一次出现的位置或者返回-1.
两个栈实现队列
- 判断二叉树是否是镜像
- 输入“aaaaabbbbccc”,输出“a5b4c3”
- 还有一个也是字符串的问题,没写太好,也没记住。。。。最后面试官跟我说的是其实用暴力算法也能实现,要注重最后实现。
- 链表逆序和二叉树深度
XML格式解析
有序数组找到第一个小于0的数和第一个大于0的数
fork和循环结合后打印多少个字符
实现一个string类
矩阵左上角到右下角的最短路径和
实现一个智能指针
合并两个排序数组并去重
最长无重复子串
两个排序数组找中位数
string转float
算法题:写个二叉树,实现插入、前中后任意一种遍历
算法题:基本类型(非引用)数组去重
4、扑克牌,一张放桌上一张放牌底,直到手中牌全部发完。给出桌上牌的顺序,求最开始时候手中牌的顺序(用了递归,被说性能不好)
编程题:1.非递减数组中查询某个目标值出现个数。解法:二分查找左右边界。
2.leetcode 124 二叉树最大路径和
概率题:一个圆上三个点,组成锐角三角形概率。
编程题:正则表达式匹配。剑指offer和leetcode都有。
链表判断是否有环,归并排序描述,二叉排序树时间复杂度
4、算法题
leetcode958 判断是否是完全二叉树。
稀疏向量的点乘
3、算法题
leetcode3 最长不重复子串
在 1 ~ 9 里不重复地选择 k 个数,返回所有相加等于 x 的情况。(leetcode 216)
数组里找两数之和(要求调到最优时间复杂度)。剑指原题。
输入一个正整数 N,返回 N 个 ‘(’ 和 N 个 ‘)’ 的所有可能情况。如N=2,输出)((),(())等。
只返回上题中括号合法的情况,比如 (()),()() 即为合法。
大数相乘
实现一个哈希表(采用链式冲突)
一个有序可重复数组里找一个数出现的次数
最长连续子序列 - 最大不重复字串
- 单链表排序
编程题: 从左到右增,从上到下增的矩阵查找,
3、算法题:两个单链表找到第一个公共结点。
4、算法题:由0和1组成的二维矩阵,找出1的最大连通域,计算其面积。
算法题:求最长不重复子序列
2、如何生成一个随机点在圆内;
3、给定一个随机数发生器在07之间,如何生成010之间的随机数;
两数之和;
三数之和;
四数之和。
做到代码题,LRU Cache。
编程:
查找多个数组之间的公共量
编程:一个字符串数组,各字符串元素无重复,找出成分相同的,如abc和cba
判断二叉树是否对称、N的阶乘末尾几个0
口述单链表快排
手撕算法:删除字符串中出现最多次数的字符(多个则删除第一个)
口述算法:10G文件,每行一个字符串,2G内存,找出互为逆序的字符串对的数量(abcde,edcba) - LC62 Unique Paths
- LC41 First Missing Positive
、链表 奇位上升偶位下降 整合成升序链表 (
一上来就给我4选1,敲代码20MIN
1、给你一个无序[1,5,2,7,3,8,2],在给你一个数字n=11,请查找和大于等于n的最小数组(必须连续,长度最小),该题中就是[3,8],长度2(lc原题)
2、一个链表,1->2->…->n,请原地折叠,输出1->n->2->n-1…;(辅助栈;快慢指针+逆序+合并)
3、一个二叉搜索树,求两个节点之间的最长路径(不一定是从根到叶子)(lc原题,递归)
4、闰年,忘了
4、算法题:一个二叉树(没有其他特征),找两个节点的最近公共父节点。(剑指,我忘了555)
两千万个学生成绩(ID+总分=int(4B) *2),要求排序(160MB左右内存,直接排序算法O(nlgn)。进阶:桶排序O(n)。)
一个无序数组,怎样找和为100的两个数。(1、排序O(nlgn)+二分;2、哈希表(O(n)))
两个链表表示两个整数,相加输出一个链表。(这么简单我还错了一个小点,进位标志位重置的问题啊啊啊)
https://www.nowcoder.com/discuss/190742?type=2&order=0&pos=509&page=1
https://www.nowcoder.com/discuss/207144?type=2&order=0&pos=477&page=1
https://www.nowcoder.com/discuss/207287?type=2&order=0&pos=473&page=1
https://www.nowcoder.com/discuss/206707?type=2&order=0&pos=472&page=1
https://www.nowcoder.com/discuss/205260?type=2&order=0&pos=470&page=1
https://www.nowcoder.com/discuss/207105?type=2&order=0&pos=467&page=1
https://www.nowcoder.com/discuss/205742?type=2&order=0&pos=434&page=1
https://www.nowcoder.com/discuss/148961?type=2&order=0&pos=429&page=1
https://www.nowcoder.com/discuss/207789?type=2&order=0&pos=419&page=2
https://www.nowcoder.com/discuss/211352?type=2&order=0&pos=416&page=1
https://www.nowcoder.com/discuss/213671?type=2&order=0&pos=388&page=1
https://www.nowcoder.com/discuss/209478?type=2&order=0&pos=387&page=1
https://www.nowcoder.com/discuss/211763?type=2&order=0&pos=382&page=1
https://www.nowcoder.com/discuss/210508?type=2&order=0&pos=366&page=1
https://www.nowcoder.com/discuss/207092?type=2&order=0&pos=359&page=1
https://www.nowcoder.com/discuss/216672?type=2&order=0&pos=354&page=2
https://www.nowcoder.com/discuss/218288?type=2&order=0&pos=342&page=1
https://www.nowcoder.com/discuss/227743?type=2&order=0&pos=26&page=1
https://www.nowcoder.com/discuss/215883?type=2&order=0&pos=353&page=2
百度:
https://www.nowcoder.com/discuss/226065?type=2&order=0&pos=202&page=1
https://www.nowcoder.com/discuss/123022?type=2&order=0&pos=368&page=1
https://www.nowcoder.com/discuss/231973?type=2&order=0&pos=420&page=1
特征
https://www.cnblogs.com/DjangoBlog/p/10224351.html
今日头条广告算法
https://www.zhuanzhi.ai/document/537f802adfb4f22c8a31cdbbbcf25082
北京微信
http://bbs1.lanqiao.cn/archiver/?tid-1347.html
渣硕算法毕业三年所见所感所思
https://li5jun.com/article/619.html
拼多多
https://www.nowcoder.com/discuss/231889?type=0&order=1&pos=1379&page=1
树模型!
https://www.itcodemonkey.com/article/15491.html
https://github.com/laobadao/Deep-Learning-Interview
https://www.1point3acres.com/bbs/thread-490321-1-1.html
https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=490321&extra=&authorid=63504&page=1
https://www.nowcoder.com/discuss/165930?type=2&order=0&pos=292&page=1
https://www.nowcoder.com/discuss/192689?type=2&order=0&pos=288&page=1
https://www.nowcoder.com/discuss/95654?type=2&order=0&pos=80&page=2
https://www.nowcoder.com/discuss/32008?type=2&order=0&pos=246&page=4
https://www.nowcoder.com/discuss/174565?type=2&order=0&pos=198&page=2
https://www.nowcoder.com/discuss/163590?type=2&order=0&pos=146&page=1
https://www.nowcoder.com/discuss/185621?type=2&order=0&pos=110&page=1
输入一个集合,输出他的子集。
写代码,一楼到二楼有20个台阶,每一次能走1个或者2个,有多少种走法?
写代码,输入一个字符串,是IPv4的地址,检查它是不是合法的地址,输出结果。
两个链表有交叉,怎么判断?怎么找出交叉节点
写代码:输入字符串,找出字符串的不重复最长子字符串(没有重复字符,且按照原顺序的)
去除链表中重复的节点
https://www.nowcoder.com/discuss/88679?type=0&order=0&pos=6&page=1
https://www.v2ex.com/t/560544