360二面凉面面经
下午场视频面试,面试岗位是搜索广告算法工程师
一面(时间35min)
自我介绍
说一下项目以及项目分工
手撕代码:TopK(快排和小顶堆分别实现,分析时间和空间复杂度)
Xgboost的原理介绍以及如何并行化实现
计算机网络和数据结构
视频面试,但是网络有点差,断断续续的还能听得清,面试官相对比较随和,问题相对简单,后续等二面
二面(时间50min)
自我介绍
堆和栈的区别(内存分配)
关于动态内存,除了new、delete用什么实现动态内存(答了智能指针shared_ptr、weak_ptr)
关于shared_ptr具体怎么实现的?【没用过】
算法相关的一些复杂度分析:数组的查找、插入和删除的复杂度,map查找、插入和删除的复杂度
map的底层实现、unordered_map的底层实现【没答好】
自己所知道的排序算法:冒泡、插入、归并、选择、快排、堆排序
分析插入和快排的时间和空间复杂度,稳定,不稳定?
稳定排序和不稳定排序算法的定义??【没答好】
手写快排
快排数组的引用传递和值传递(是否会改变原始数组?)
快排改进方案(回答了选取的key要随机),不太满意,按照代码分析一下 [1,1,1] 情况下怎么回事(难受啊~)
(查了一下资料,应该是要实现三路快排,以前看过,具体真的忘记了)
C++中的构造函数哪几种?
对一个class A{} 写一下构造函数
写的不太符合面试官的思路。。。析构函数前面没有初始化,你为何调用析构函数【也没答的太好,有点尴尬】
给了一个构造函数的案例,分析一下具体的构造函数的具体调用过程(在堆还是在栈中实现?)
(具体的Cpp的问题记得不是特别清楚了)
机器学习相关的:
介绍一下项目,项目中只用了GBDT相关的ensemble,没有用到NN?
生成模型和判别模型(SVM、LR属于哪种)
判别检验的具体原理【回答的不是很满意,面试官解释了下】
有什么想问的问题吗?
这一面的面试开始的时候视频质量很差,基本都不知道对面说啥,问完第一个堆栈问题面试官就打电话过来了,
一辺电话面一辺视频(感觉有点奇葩),挂掉电话前,面试官说你等下一面,然后在电脑前等待,等了十分
钟,被踢出了面试房间???然后反手收到感谢信。。。
总结:Cpp还是基础知识掌握的不够牢固,面试问的都是基本的知识,基础知识才是面试之本
#360公司##面经##秋招##算法工程师#