这是字节跳动算法实习岗一面(简历面)的复盘,之前就听说字节跳动的面试比较难,这次真的亲身体验了一把…
这次面试虽然是简历面,但包括了计算机基础知识、机器学习算法基础、简历项目以及编程题。
计算机基础知识
主要就c++/python编程语言问问题,不过前辈看出来我对语言这东西目前也就只是用,没过多研究其背后的原理,问了几个问题就过去了。
-
python:深拷贝与浅拷贝的区别?如何实现深拷贝copy.deepcopy?dict是如何实现的? 很明显,后面两问都涉及到python源码的实现了,只不过dict我回答数据结构中哈希表的实现原理,前辈好像也觉得ok。
不过还是等我研究下python的源码再把这两个问题好好回答一下。可以通过leetcode138-复制带随机指针的链表来一窥深拷贝的源码实现。
参考资料:
Java的深拷贝和浅拷贝【虽然是java的,但讲的很好,可以将python中不可变类型看作是基本类型,可变类型看作是引用类型,python中实现浅拷贝的一般就=和copy.copy,实现深拷贝的是copy.deepcopy。】
python深拷贝和浅拷贝的区别 -
c++:#define与const定义常量的区别?
#define和const的区别
机器学习算法基础
- svm的损失函数?
- 核函数的作用?常见的核函数有哪些?多项式核与高斯核的区别?核函数之间的区别应该是对输入空间数据的分布做的假设不同,但至于具体做了何种假设,各自的优势在哪,需要参考资料。另外推荐看下李航老师的《统计学习方法》中svm一章,有更具体的核函数举例。
参考资料:
svm常用核函数
李航老师《统计学习方法》
支持向量机原理(三)线性不可分支持向量机与核函数
简历上的项目
这一块比较熟,自我感觉表现还可以。
- CTR预测是干什么的?
- XGBoost与LightGBM的区别?
- FM与LR的区别?
- 为什么NFM线下效果很好,线上效果不佳?
编程题
单链表反转
结语
字节跳动的面试可以说考察面试者的知识面既广又深,很适合帮助面试者查缺补漏,而且可以同时投多个部门,我觉得很适合有一定面试基础且需要再巩固的童鞋去提升自己。这次面试有点尴尬地是在牛客网上写编程题,要自己编写输入!!!这碰上了链表与树的题,还得写个构造过程。。。
如果觉得不错,请素质三连哈~~
有疑问,欢迎评论、共同探讨-v-