京东广告部算法工程师面试

京东广告部也是总共二面,两面给我的感觉完全不同;

一面,常规的自我介绍,项目经历介绍,写算法题:2道题,1)排列好的数组,二分查找,面试官说尽量考虑全情况  2) 一个固定的数组,[1,2,3,4,4,5,7],满足下面几个约束条件:a. 4不能位于第三位;b.5和7不能连续,给出全排列;第二道题主要的问题在于给定的数组有重复的元素,要记得在递归给出全排列时,排除重复计算!!

二面,二面的面试官倾向于基本知识吧!项目经历中spark的参数调优,spark或者hive实现取每个分组的top k的过程(假设表只有id, score两列,根据id来group);hive实现两个表的联合查询,表A是白名单,表B是全部的记录,计算出白名单对应的avg之类的统计值;

我的代码:hive代码 select A.id, avg(score) from (select id from A left outer join select id, score from B on A.id=B.id) C group by A.id

面试官:去掉子查询呢? 代码应该为 select avg(B.score) from A left outer join B on A.id = B.id group by A.id

接下来是基础知识拷问时间!崩溃~

1. new和malloc的区别(new是函数,malloc是关键字;new在创建新对象时会调用构造函数,malloc不会,所以new可以用来新建自定义的对象class);

2. 指针和引用的区别:指针是一个变量,存储一个地址,指向内存的一个存储单元;而引用跟原来的变量是同一个东西,是原变量的一个别名;

3. 浅拷贝和深拷贝的区别!要记得官方说法哦:在有指针的情况下,浅拷贝只是增加了一个指针指向已经存在的内存,而深拷贝就是增加一个指针并且申请一个新的内存,使这个增加的指针指向这个新的内存;

如果用自定义的类作为参数传入函数中,那么此时是浅拷贝还是深拷贝呢?此时是浅拷贝哦;

后面,是常规的机器学习算法的掌握之类的blabla~

PS:面试吸取的经验是,应该和面试官沟通好你要面试的岗位,大概因为没和面试官沟通清楚,二面的面试官按照大数据开发工程师面试的,我明明是一个算法宝宝呀!!!

另外,深度学习和强化学习,赶紧入坑啊!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容