1213

6.算法题:10亿个数里面怎么取前1000个数。
7.算法题:一个数组怎么输出前K大的值、时间复杂度。

  1. 撸shared_ptr
  2. 找二叉树最近公共祖先
  3. 删除链表A中出现在链表B的元素

3.算法:二叉树前序中序遍历,重建二叉树
4.过拟合
5.正则化
6.SVM, FM, 协同过滤,树

推导logistic回归
判断二叉树结构是否相同

三面(1h)
三面面试官临时有事,隔了两天又面的
1.二叉树中序遍历,递归非递归
2.kmeans聚类,这个倒不难,就是写起来有些麻烦,写了30分钟
3.深度学习的一些基础问题
4.bagging boosting
5.LRU
判断链表有环
二叉树中序遍历

  1. topk 说了一下堆排序的思路,没让写
  2. 排序数组中绝对值不相等的元素个数,
  3. 编程题 给定一个二叉树,求出这个二叉树的宽度。没提交代码,写了一下面试官说ok就下一个了
  4. 给定一个数组,找到这个数组中,和等于0的所有三元组。 我
    矩阵的转置和回旋输出,这
    如何判断两个单链表是否相交并找到交点,这个题没反应过来,所以答得并不好,只大概给了个思路。
    用两个队列实现栈的入栈和出栈操作。
    机器学习算法
    一面
    Power(a,n) 常规递归方法写完让写一个O(1)的方法
    岛计数问题 dfs
    哪些处理过拟合的办法:正则,剪枝,dropout
    CNN里面能自然起到防止过拟合的办法
    bagging vs boosting简述
    SGD每步做什么,为什么能online learning
    Logistic Regression损失函数,怎么来的
    二面
    CNN反向传播细节,怎么过全联接层、池化层、卷积层
    Adam优化器的迭代公式
    CNN多分类损失函数 softmax
    字符串最小编辑路径
    三面
    线性回归R^2公式及意义
    p-value意义,怎么算?怎么做单边检验
    随机过程 稳态是什么
    时间序列 常用模型,arima模型的公式?自回归在机器学习中的应用?
    计算几何分布期望
    熟悉什么机器学习算法(SVM),写损失函数(hinge+正则)
    找完全二叉树最后一个节点
    找字典序的第k个数

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. 给定一个整型数组,搜索其中位数,复杂度小于O(n\log n)
  2. 字符串转数字,及边界条件 【撕代码】
  3. 分解质因数【撕代码】
  4. 单链表有环判断
    8.怎么对10亿个数字进行排序
    9.编程题两道:1道leetcode原题 2Sum ,还有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两种方法各自的优势

  1. 手推LR
  2. 大数相乘
  3. 接雨水(hard leetcode 42)
  4. 一道dp扔鸡蛋问题
  5. 多线程矩阵乘法
    2.TopK代码
    3.链表反转代码
    4.项目
    5.FastText
    6.Word2Vec区别
    7.DSSM
    8.多线程编程基础
    9.C++中STL的set和unordered_set的区别

2.做特征的过程、想法和思路
3.聊项目
4.xgb中feature_importance是如何计算的
5.代码题:C++实现skip-gram中的负采样中的核心代码

  1. 最大连续子数组(用贪心, 然后给出贪心正确性的证明)
  2. 最大连续子矩阵
  3. demo:螺旋矩阵

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 时的全排列
【编程题】二叉树的序列化和反序列化
【编程题】在一棵二叉排序树中,找到比给定数值小的最大节点。
编程题:

  1. 一个链表,奇数下标递增,偶数下标递减,使其总体递增。

  2. 给一个数组,求其所有数都平方后,共有多少个唯一的值。
    数学:

  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。

  4. 算法题:一个正整数数组,寻找连续区间使得和等于target,简单的用两个指针做出来了

  5. 做一个题,三色排序(荷兰国旗问题)

  6. 作者:怂怂雷
    链接:https://www.nowcoder.com/discuss/327990?type=2&order=0&pos=24&page=1
    来源:牛客网

  7. 代码题,找一颗二叉树最长的子路径,要求子路径上的数都相同

  8. 问矩阵相乘的求导问题(我忘了求导公式,尴尬) 拆开来看一个样本与系数的推倒,最后求平均

  9. 介绍一个比赛的项目,特征工程介绍完后,问评测指标,然后让写程序画pr曲线,写了一个计算不同阈值下pr值的程序
    10.2. 问了xgboost并且手推

  10. word2vec的相关内容,包括两种训练方式及效率等

  11. 写个代码,蛇形打印数组
    12.三道题: 1. 背包问题,找零钱

  12. next permutation

  13. 概率问题
    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. 逻辑回归是什么?为什么用sigmoid?解释最大似然。先验概率与后验概率。
  2. 决策树分裂节点的标准与对应的算法。gbdt的gb是什么意思,如何体现。bagging与boosting的区别。gbdt里如何知道每个特征的重要性。
  3. 编程题:正则表达式匹配。剑指offer和leetcode都有。
  4. 8,有一个生成 0-4的均匀分布的整数随机数生成函数,利用这个函数生成0-9均匀分布的整数随机数生成函数;
  5. 6,手撕代码,单调不减数组找出一个数最后出现的位置,(二分变形)
  6. 作者:冲鸭毕设1、手写deepFM的结构(代码)
    2、手写前向传播、反向传播(代码)
    3、手写kmeans算法(代码)
    4、然后问了几个梯度下降的优化算法,以及kmeans在单机中怎么优化性能

• 链表的归并排序
• 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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值