此处深叹一口气,都是“算法”惹的祸,字节三面,每面都是算法算法,感觉处处都是坑呐,三面结束四面HR让我回家等结果,三天过去我的offer是要凉凉了?不敢想象,来给大家分享一波我的这次面经吧... ...

 

一面(40min)

  • 自我介绍

  • 算法题:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个(剑指offer原题,就是排序改一下比较规则)

  • 对于LR来说,LR如果多了一维冗余特征,其权重和AUC会怎样变化(权重变为1/2, AUC不会变化)

  • 写出LR的损失函数(交叉熵损失函数)

  • 算法题:二叉树转双向链表(中序非递归遍历修改指针)

  • ... ...

二面(1h20min)

  • 算法题:一个类A有next,has_next两个方法,其中next调用会返回值,但索引会自增。实现一个peek访问只返回值,索引不自增。(lc原题284) -- 当时感觉面试官没有描述清楚....这里竟然耗了一段时间

  • 算法题:快排递归和非递归

  • 算法题:给出数组A,长度为n,数组中元素的值位于[0, n - 1]之间,求是否有重复元素

  • 问到了模型是怎么做多分类的(这里答得不是很好),以及stacking模型融合怎么做的?为什么有效?

  • 算法题:现有100W 资讯文本的title,文本的长度为1-40个字左右。len(titles)=100W ,1<=len(titles[i])<=40 现有一个100W左右的禁用词, 每个词的长度在1-6个字左右左右。len(forbid_words) = 100W ,1<=len(forbid_words[i])<=6 若title中存在禁用词则过滤掉该title。 请实现这个过滤系统。(目前想到的:1.title分词, 禁用词做hash, 再遍历title 2.禁用词构造前缀树, 遍历title去前缀树中寻找)

  • 开放题:你觉得影响模型效果的因素有什么,并排个序。(我回答的是特征>模型>优化器,才疏学浅只答了这些hh,大家有什么Trick在评论里分享一下哦)

  • DeepFM与FM的关联,并描述DeepFM的结构

  • ... ...

三面(70min)

  • 算法题:给出[[1, 2], [3, 5], [8, 8], [15, 16], [32, 38]],求间隔

  • 算法题:给出两个升序数组A、B和长度m、n,求第k个大的数

  • 算法题:前序中序转二叉树(lc原题,用字典记录一下中序里各值的索引,然后递归即可)

  • 算法题:旋转数组查找target(lc原题,我的解法是根据左侧递增还是右侧递增来做对应的二分,当然还有一种是先二分找到旋转点然后两侧再分别二分)

  • 破天荒地竟然问了我一个忘得差不多了的Java语法:Java的Final关键字作用(变量--赋值一次后不可再修改,类--不可被继承,方法--不可被重写)

  • Sigmoid,Tanh,Relu等激活函数的优缺点(这里之前没有复习到,后面想了想应该从梯度消失,数据压缩,0均值方面来解释;当然,说的越多越好,比如Relu的神经元dead啥的,越能体现你的知识广度)

  • 神经网络中网络权重W初始化为0有什么问题?

  • DIN和DIEN网络结构介绍

HR面(30min)

到岗时间,现在还有哪些公司在面试啥的,其实也都是HR常问的一些问题

感觉可能最近字节HR比较忙...还是等结果吧...希望能拿到字节offer

内心无比紧张,三天了...到现在还没收到通知,难不成我要凉凉了吗??虽然问了这么多算法题,自认为第一面还是很顺利的,二面有点卡壳,三面也是,但是对方面试官也没说啥呀...其实在去面试之前我也是下了狠功夫的,手上收集到的三个算法资料的PDF,我都刷了一遍的,尤其这本262页的《算法刷题LeetCode中文版》足足翻了两遍呐(呜呜呜~)

说实话,关于算法,我就是这么复习的,天天刷题,自己动手敲代码,多多实践,感觉还是挺有用的。既然说到这儿了,也给大家看看我的算法笔记吧,不知道你们有木有,这些可都是我的宝典。

既然决定分享出来,那便可免费的下载,如若有所需求,那可点击这里,获取下载所有算法宝典的原件。

此书有262页,包括编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题等等15个章节。

算法和数据结构的学习 是所有计算机科学教学计划的基础,但它并不只是对程序员和计算机系的学生有用。任何计算机使用者都希望计算机能运行得更快一些或是能解决更大规模的问题。

本书中的算法代表了近50年来的大量优秀研究成果,是人们工作中必备的知识。从物理中的N体模拟问题到分子生物学中的基因序列问题,我们描述的基本方法对科学研究而言已经必不可少;从建筑建模系统到模拟飞行器,这些算法已经成为工程领域极其重要的工具;从数据库系统到互联网搜索引擎,算法已成为现代软件系统中不可或缺的一部分。这仅是几个例子而已,随着计算机应用领域的不断扩张,这些基础方法的影响也会不断扩大。

在开始学习这些基础算法之前,我们先要熟悉全书中都将会用到的栈、队列等低级抽象的数据类型。然后依次研究排序、搜索、图和字符串方面的基础算法。最后一章将会从宏观角度总结全书的内容。

(1)目录

(2)内容详情

程序员与算法,这是一个永恒的问题,在生活中,凡是有乐趣的地方就有算法,本书恰巧会介绍生活中无处不在的算法。所有挑选的算法例子都是围绕“趣”字展开的,都是简单且在生活中常见的算法,可能还有许多你都还没有意识到。共有23章,还附带两章的附录,422的PDF。

(1)先来看看目录介绍一下都有些什么

 

 

 

(2)详细内容

由于这些宝典都是PDF,给大家看也只是截一些图出来,也不是很方便,不过没关系,我这边都有PDF的源文件,如果有朋友需要,可以直接来找小编免费分享一下,点击这里

更多关于Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构面试解析等等可以去这个Github链接地址:

https://github.com/ThinkingHan/Java-note 阅读,Star一下吧,感谢支持~