6.算法题:10亿个数里面怎么取前1000个数。
7.算法题:一个数组怎么输出前K大的值、时间复杂度。
3.算法:二叉树前序中序遍历,重建二叉树
4.过拟合
5.正则化
6.SVM, FM, 协同过滤,树
推导logistic回归
判断二叉树结构是否相同
三面(1h)
三面面试官临时有事,隔了两天又面的
1.二叉树中序遍历,递归非递归
2.kmeans聚类,这个倒不难,就是写起来有些麻烦,写了30分钟
3.深度学习的一些基础问题
4.bagging boosting
5.LRU
判断链表有环
二叉树中序遍历
Power(a,n) 常规递归方法写完让写一个O(1)的方法
岛计数问题 dfs
介绍Adam和dropout的原理
maxpooling处怎么反向传播误差
2. GBDT的原理,怎么做多分类问题
3. XGBoost的基本思想,和GBDT的区别
由长度为length的array表示的整数,允许相邻位数交换,求n步交换内能得到的最小整数。
O(n)的方法找到一个无序数组的中位数
给N个数字,返回这N个数字能组成的所有二叉搜索树
类似Leetcode No.11,但是问题是改成一共能装多少水。写代码,并测试。
1、给定一个数组(无序),利用快排思想求出数组中位数
1.二叉树中序遍历,递归非递归
2.kmeans聚类
推导logistic回归
判断二叉树结构是否相同
Logistic Regression损失函数,怎么来的
找完全二叉树最后一个节点
找字典序的第k个数
在maxpooling处怎么反向传播误差
由长度为length的array表示的整数,允许相邻位数交换,求n步交换内能得到的最小整数
一个字符串,一个单词字典,把字符串分成若干个子串,每个子串都包含在字典中,返回多少种分割法,leetcode原题
字符串左移K位,space complexity O(1) time complexity O(n) leetcode 原题
leetcode 856题
SVM的损失函数
、切割绳子,求最大的乘积。。dp的思路
(3)代码题:N的反转(可能为负数),如-123 => -321;
(4)代码题:与LC950类似(但是我懵了
(11)代码题:判断平衡二叉树
(12)代码题:给出一个数的集合,求他们拼接起来最小的数;如{3,32,321} = 321323
相关链表的公共节点(要考虑不相交的情况)
dfs非递归遍历
给
出字符串x,和字符集合y,求x中包含所有y中元素的最短字串是给出一个数组,数组中有正数和负数,要求重新排列这个数组,使得原始数组中的正负数交替排列,且保证各自的相对顺序不变。
1,2,…,N中,字符1出现的次数
判断a+b>c?要考虑溢出
排序数组中绝对值不同的个数
字符串转整数
求股票的最大利润,例如[1, 3, 1, 8, 10, 3],只能买卖一次,计算最大收益
能买卖无数次,计算最大收益
只能买卖两次,计算最大收益
算法题:一个整数数组A,求Ai-Aj的最大值Max
算法题:判断一棵树是不是完全二叉树
1.求一棵树中任意两个节点之间经过的最少节点数(包括两个节点本身)
2.打家劫舍(leetcode)
.XGB lightgbm GBDT的关系和区别
旋转数组查找,一个二维DP。
中文数字,比如一百二十,如何转换为整形数字
原理要了解他们的优缺点
算法:Path_sum(两个相关的变形)
链表 翻转 隔k个翻转
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原题,递归)
个可以随机数1-9的均匀随机函数,要求推到出一个1-13的均匀随机函数
随机数1-9的均匀随机函数,要求推到出一个1-7的均匀随机函数
(1)leetcode:410. Split Array Largest Sum
2.介绍一下当今在信息抽取领域的state-of-the-art
3.你提出的网络结构和CNN、LSTM等经典结构比的优劣
4.手推LSTM的梯度反向传播
5.手推LR
6.手推XGboost
7.sigmoid和softmax的区别,sigmoid判别阈值如何选?
8.选一门编程语言实现k-means
1.挑一个你印象最深的比赛介绍一下(从拿到题目开始的所有流程)。
2.那我们做两道算法题吧:
(1)第一道题目不好描述,反正就是写了一个裸的网络流。
(2)给你一个无序数组,给你一个K,求所有和为k的倍数的子序列的个数,如果换成子数组呢,时间、空间复杂度分别是多少?(这题卡了挺久的,子序列直接dfs,子数组只能想到O(n^2)的办法,但直觉上知道一定有O(n)的解法,硬是从dp想到背包,从背包想到双指针…未果。最后在面试官的提示下,用前缀和写了个O(n)的解法,面试官人很nice,一步步引导)
讲一下随机梯度下降的推导,我就顺手把牛顿法和拟牛顿法也说了一下,推了一下
说一下kmeans是如何做的吧(怎么又考kmeans?),我就又说了k-means的缺点,并且延伸到DBSCAN和OPTIC是如何修复它的缺点的。
三轮手撕代码,基本都是秒撕,保证每个题在5-10分钟之内做到bug free。
(1)加权编辑距离
(2)链表的局部反转
(3)不同形式的二分
(4)两个01数组,找到对应位置的最长子数组使其拥有相同个数的1
8.word2vec两种方法各自的优势
2.做特征的过程、想法和思路
3.聊项目
4.xgb中feature_importance是如何计算的
5.代码题:C++实现skip-gram中的负采样中的核心代码
https://www.nowcoder.com/discuss/328830
二叉搜索树已知先序求后序(代码实现)
好像是个求子串的题 (字符串不带怕的 下一个)
隐约记得是比较简单的组合数学 手玩下样例 就有公式了
比较sb的概率dp
dfs输出全排列
不使用额外空间的链表翻转
有序链表归并
快排求区间第k小
01背包
作者:水煮鱼201906300703978
链接:https://www.nowcoder.com/discuss/209478
来源:牛客网
1.给你M个正样本,N个负样本,以及他们的预测值P,求AUC。(写完之后接问:AUC究竟在衡量模型什么能力?如果现在所有预测值都*1.2,AUC是否会变化?)
这一题印象深刻是因为平时在计算auc的时候,很多同学都知道是roc曲线的面积,但是对auc具体的含义了解不多。
一个反转字符串,一个是数岛屿数目的变体
二叉树两个节点间的最长距离
作者:噜啦噜啦叻
链接:https://www.nowcoder.com/discuss/198905?type=2&order=0&pos=7&page=2
来源:牛客网
字节,已知x.y的概率分布,求max x,y的分布
字节,一维01数组中,求最长的区间,其中0和1数量相等
字节,两个栈模拟双端队列
字节,求树上的lca,是否有快速的在线算法?
字节,逻辑回归中损失函数的实际意义?
字节,线段树和树状数组的异同。
字节,a,b是两个矩阵,判断a在b中出现了几次?a的大小小于b
字节,最小生成树
算法题:leecode 102
场景题:怎么给用户推荐内容(可以利用浏览历史等等)
算法题:无序数组找到第k大的数 写出两种做法 (quick select, heap)
对于推荐算法的了解:fm,cf等等
算法题:堆排序, in-order traversal
算法题:第一题忘了,第二题leetcode 42
实现求auc的过程(输入就是instance的score和对应label)
矩阵分解相关知识
实现LR
印象最深的paper和最近看过的paper
3、特征选择有哪些方法(介绍项目时涉及到了特征相关性分析,因此问了这个)。
4、FM是否也能起到自动特征选择的作用,为什么。
5、GBDT的原理,和随机森林等算法做比较。
1、svm损失函数推导。
2、朴素贝叶斯写公式。
3、算法题:两个单链表找到第一个公共结点。
4、算法题:由0和1组成的二维矩阵,找出1的最大连通域,计算其面积。
作者:天才儿童
链接:https://www.nowcoder.com/discuss/215883?type=2&order=0&pos=9&page=2
来源:牛客网
1、算法题:长度为n的字符串中包含m个不同的字符,找出包含这m个不同字符的最小子串。
2、如果实现c++中的vector,只需push_back和查找两个功能,底层如何实现。
3、如果用数组实现,数组初始容量为n,每次push到容量上限之后都扩容到原来的两倍,现在push进去m个数,m远大于n,求相比于m的时间复杂度。
4、A和B比赛,A、B获胜的概率分别是0.6、0.4,如果你是A,3局2胜和5局3胜你会选择哪个。
5、如果A和B比赛无数局,A获胜的概率是多少。
9、介绍一下xgboost有哪些特点。
10、xgboost和GBDT的分裂方式你认为哪个好。
5、算法题:下一个全排列。
6、算法题:长度为n的数组中有一个数字出现了n/2次,快速找到这个数。
如何实现一个栈,O(1)获取最小值,get_min
计算feature map的size,卷积层参数量
给定区间,二叉搜索树去掉不在该区间的节点,用递归,
使用链表模拟两个数相加
手写代码:大写的钱转成数字表示,如输入一万零五百,输出10500
,给个字符串,只有(){}[],看看是否是匹配的,
两个三十六进制字符串的相加
9.算法题:给定一个序列和排序中间结果,判断是插入还是归并排序的中间结果,并输出下一次排序结果。
10.算法题:非递归后序遍历
9.算法题:二维数组的顺时针打印
10.数学题:1-9的数字可重复选4个,能够相加为10的组合数目
14.算法题:旋转数组的查找
15.算法题:2个有序数组中位数,要求O(logN)
二叉树中序和先序遍历数组,求后序遍历数组
实现 36 进制加法 “1z”+“1” = “20”
from:1,1,2,2,3,6
to: 2,3,4,5,6,7
转换成树的结构,我写了求树的最大深度的函数
【编程题】n=3 时的全排列
【编程题】二叉树的序列化和反序列化
【编程题】在一棵二叉排序树中,找到比给定数值小的最大节点。
编程题:
一个链表,奇数下标递增,偶数下标递减,使其总体递增。
给一个数组,求其所有数都平方后,共有多少个唯一的值。
数学:
a , b ~ U(0,1), a 和 b 独立。求 E(max(a,b))
Q:有两个字符串,你只可以进行删除操作,问你最少进行多少次操作可以使两个字符串相等。例:sea,eat需要两次删除操作
Q:给你一个二叉查找树,还有一个数K。如果能找到,就返回节点,如果找不到,就返回空
有M个有序链表(从大到小)。现在我们要取出前K大的元素。
我们输入两个值n和k,n表示我们有从1到n个整数,然后将这些整数都字符串化之后按字典排序,找出其中第K大的。例如:n=15,k=5.那么1-15字符串化之后排序如下:1,10,11,12,13,14,15,2,3,4,5,6,7,8,9。其中第5大的就为13。
问了下fm,ffm,deepfm的区别
过拟合
BN
算法题,01矩阵,连通块的数量和最大大小,追加问题是如何去重
c++ static,单例模式(从来没碰过。。。)
二分求平方根
就是著名的 小兔的棋盘,我后来查了一下,是什么卡特兰数
是寻找迷宫中的最短路径,迷宫中1表示有墙,路不通,0表示可以走
LeetCode 76. Minimum Window Substring. Hard。
算法题:一个正整数数组,寻找连续区间使得和等于target,简单的用两个指针做出来了
做一个题,三色排序(荷兰国旗问题)
作者:怂怂雷
链接:https://www.nowcoder.com/discuss/327990?type=2&order=0&pos=24&page=1
来源:牛客网
代码题,找一颗二叉树最长的子路径,要求子路径上的数都相同
问矩阵相乘的求导问题(我忘了求导公式,尴尬) 拆开来看一个样本与系数的推倒,最后求平均
介绍一个比赛的项目,特征工程介绍完后,问评测指标,然后让写程序画pr曲线,写了一个计算不同阈值下pr值的程序
10.2. 问了xgboost并且手推
word2vec的相关内容,包括两种训练方式及效率等
写个代码,蛇形打印数组
12.三道题: 1. 背包问题,找零钱
next permutation
概率问题
14.、含有重复数的排好序的数组进行查找
是否存在子数组的和等于目标值
删除链表重复节点。如1-2-3-3-5-5-6 变为1-2-6
作者:腾讯loser
链接:https://www.nowcoder.com/discuss/312020?type=2&order=0&pos=30&page=1
来源:牛客网
四、字节推荐岗(20投,21安排,22面完,高效)
一面:
学校学姐,疯狂问推荐相关,然后对一些推荐指标的理解,算法题就是 手写一个
https://leetcode-cn.com/problems/decode-ways/ 解码方法变形,让你输出解码的字符串数组
然后手写了个后序遍历,面试表现一般
二面:
重点介绍了一下自己简历的项目,然后介绍了一下graphembedding的发展史,算法题
python实现kmeans
树的两个节点的公共祖先(大量查找时怎么提升效率,没回答上来,查找表?不太懂)
三面:
手写LR的实现过程,然后聊了聊l1以及l1的扩展。
作者:不想当菜鸟的小菜鸟
链接:https://www.nowcoder.com/discuss/310079?type=2&order=0&pos=31&page=0
来源:牛客网
DSSM中没有使用XGBoost中的特征吗?
DSSM使用长文本,比如:250个字,会发生什么?
Bert-BiLSTM-CRF使用预训练的字向量,与直接在模型中训练,有什么区别?
为什么不使用开源的数据标注实体?
无法识别的实体怎么处理?
APP推荐中,为什么使用FM?
不直接计算cos相似度?
XGBoost中节点分类的方法
XGBoost中目标函数的值如何计算
XGBoost中使用的基分类器?
DSSM中的参数
准确率和召回率
最新的双塔模型
Fasttext原理,是否使用skip-gram
Bert中的输入与Transform中输入的不同(指的是Transform中位置使用余弦进行计算)
Bert缺点?
SVM,决策树,LR对特征是否要归一化?(分类决策树与回归决策树是否
编程题,LEETCODE 448
编程题,LEETCODE 121、123
作者:战神宪
链接:https://www.nowcoder.com/discuss/288991?type=2&order=0&pos=35&page=1
来源:牛客网
找到数组中只出现两次的数字
扑克牌顺序1~13 先取第一张,再取第二张放到最后一张,以此类推,最后从场上牌的顺序还原最开始的顺序
海盗金币问题
L1和L2的区别,L1什么分布,L2什么分布
relu和sigmoid优缺点
编辑距离
找到数组中前K个最大的数
leetcode312
问题:定义域值域都是正整数的单调递增函数f,给一个值y,找到使|f(x)-y|最小的x。
肯定是二分
两道算法题:
leetcode 93
找出一个字符串中所有的回文子串
二叉树两个节点间的最长距离
重复次数最多的最长连续子串(即找到重复次数最多的子串,若有多个,输出最长的)
作者:大毛子
链接:https://www.nowcoder.com/discuss/227743?type=2&order=0&pos=41&page=1
来源:牛客网
• 链表的归并排序
• 1 到 n 的数组找一个重复的
• 建最小堆
• “I Love China” to "China Love I
• memcpy 实现代码
• atoi 实现代码
• trieTree 实现代码
• 线程池实现代码
• 工厂模式实现代码
• leetcode 207 拓扑排序
• leetcode 143 链表对折,1 2 3 4 5 -》1 5 2 4 3
• leetcode 49 给一个字典,将同位词分组输出
• 对角线打印矩阵
• Leetcode 71 简化路径,linux 路径简化
• Leetcode 736 Lisp 语法解析,(* 3 ( 5 2))
1、手写deepFM的结构(代码)
2、手写前向传播、反向传播(代码)
3、手写kmeans算法(代码)
4、然后问了几个梯度下降的优化算法,以及kmeans在单机中怎么优化性能
作者:毛毛虫chh
链接:https://www.nowcoder.com/discuss/242808?type=2&order=0&pos=53&page=1
来源:牛客网
两道编程:
1.列表topK数字,要求复杂度最优。(最小顶堆,堆排序,用python写的,调了heap,所以一面面试官有点不满意)
2.将列表排序,奇数放在左,偶数放在右。(双指针,有一点小bug,后解决)
1.列表数字排列可组成的最大数字?聊了思路,直接告诉她可以换一道
2.数每层的最大值?队列,广度优先,AC。用python写的,直接用列表remove实现的队列,虽然时间复杂度高,但是真的不记得deque具体用法了。
(1)判断括号字符串的有效性
(2)最长上升子序列
leetcode306
实现36进制加法,中间不准转成10进制。
众数 次数超过一半
https://www.nowcoder.com/discuss/229436?type=2&order=0&pos=59&page=1
https://www.nowcoder.com/discuss/229436?type=2&order=0&pos=59&page=1
第一题, 是 扭转有序数组中查找, 比如说{ [ 5,6,7,8,1,2,3,4] }[5,6,7,8,1,2,3,4]这种, 要求时间复杂度O(lgN)O(lgN)
第二题, 用 [1,5][1,5]的随机数生成器生成 [1, 7][1,7].
第三题,编辑距离( https://en.wikipedia.org/wiki/Edit_distance). 给两个字符串, 问编辑距离。
https://www.nowcoder.com/discuss/229436?type=2&order=0&pos=59&page=1