一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 211|回复: 1
收起左侧

冷门公司criteo面经

[复制链接] |试试Instant~ |关注本帖
aifer 发表于 2016-11-4 04:42:15 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 硕士 全职@criteo - 网上海投 - 技术电面 Onsite |Otherfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
一个总部在法国的做广告相关的公司。职位是sde。电面是个华裔,用的skype。主要是谈简历和聊一些基础知识。算法很简单,就是给你两个string list,可以有重复。要求是查看list1的所有string都能在list2中match到,重复的string,要多次match。解法就是count List2的所有string,然后遍历list1,相应减少countmap中该string的数量。如果在list2中找不到,返回false。否则返回true。.1point3acres缃
follow up就是如何优化,从其中一个list的特别大,到两个list都特别大,到无法在内存中放下,如何Parallel来做,就是分布式,mapreduce每一步如何做等等。面了一个小时。过两天收到onsite通知。
onsite正好赶上万圣节,进公司直接跳出来个蜘蛛人,吓我一跳。。
第一轮:给一个2D矩阵,表示一个image,给一个起始点,让将跟起始点相连的且颜色相同的点更改为一个新的颜色。先写的DFS,再写BFS,问了一下两种解法可能出现的问题。DFS可能stackoverflow, bfs可能outofmemory。结束。-google 1point3acres
第二轮:search组lead,问题是手机键盘的数字组合在字典里找出所有可能的meaningful word。这题问的有点大,因为牵扯两部分,1.将数组组合转换成所有可能word前缀。2.字典如何设计。我想从第一个问题开始入手,结果他非要揪着问第二个问题。我就说最简单,但复杂度最高是list,O(MN) lookup。n : average word length, m: total words in dict.优化说用Trie,这样可以保证查询时间是O(N) n 是给定前缀的长度。他非要跟我要O(1) lookup的,我说O(1)的lookup,一般来讲只能是hashmap的数据结构,但是如果用hashmap的话,我们需要hash前缀为一个key值,这个复杂度是O(n),所以总的lookup时间是O(n) + O(1)依然还是O(n)的复杂度。后来他说OK吧。让我写如何实现search。这时候剩下也就10多分钟了。。我把几个需要用的API的signature都写好了,单独实现了这个search,同时search到该前缀,又写了个方法返回所有包含这个前缀的words。这时候时间就差不多结束了。最后问了两个无关痛痒的问题。
第三轮:跟HR边吃边聊。HR remotely works from home。 就是谈谈我对什么样的职位感兴趣啊,聊聊他们的Benefit,说中午会拿到前两轮的feedback,如果不好的话,吃完就可以直接回去了。过了大概30分钟HR说good,让我准备下一轮。
第三轮:国人小哥,人很不错,先国语寒暄了几句,说会给我个系统设计的题。其实楼主这块也是 最近才开始系统的看。很多东西上手就给忘了。题目是要设计一个shopping cart service。第一次做系统设计,在白板上真不习惯。我就说先看看有何scenario,用户可以添加,删除,更改数量等。小哥问,如果用户没登录,如何记住用户的cart,下次再来的时候依然能保存下来。答:将用户的cart信息保存到DB里,同时用户的session id保存到cookie里,下次访问的时候,直接将这个session id一起传给server,然后server 去db里面调出来该用户的cart信息。又问我session信息如何保存,建个session table,有session id, item id, amount. 然后又设计几种功能的REST API,问我为什么用REST,不用SOAP。没回答上来,直接说我没用过SOAP,只用过REST,所以就选这个了。又问我REST什么意思。我说忘记了。。对于几个功能我给的path是:(拿到所有items)GET: /ssid/shoppingcart/ or /shoppingcart?ssid=value. (更改,添加)POST: /ssid/shoppingcart?key=k&val=v,(删除)DELETE: /ssid/shoppingcart?key=k。回来想了一下,其实添加的时候直接用 /ssid/shoppingcart/itemId就好;更改的话用/ssid/shoppingcart/itemId?val=v,删除直接/ssid/shoppingcart/itemId.
API搞完了有设计了一下后台的architecture,比如瞬间用户访问量过大,单机数据库无法存储所有数据等等一系列问题,最后有个地方把我问蒙了,一时间没有想出解决方法。其中一个是问,shoppingcart的通常场景是read heavy还是write heavy。当时回答是read heavy。回来想了下,应该是write heavy。因为用户load shoppingcart的时候只read一次,但是每添加,修改,删除一次都是一次write。所以整个设计的这轮感觉非常差。. visit 1point3acres.com for more.
第四轮:本该是一个manager来面,结果hr告诉我manager牙病犯了,提前走了。所以让我先回去,等通知。

. Waral 鍗氬鏈夋洿澶氭枃绔,总结:这个公司的职位是我比较喜欢的。公司业务做ad retargeting,职位是做web service和data processing相关的。这也是我非常喜欢的领域。希望最后的国人小哥别挂我,给我一个机会。如果小哥也在这里的话,还请您高抬贵手,非常感谢。
另外,大家如果想面小公司的话,系统设计还是需要系统的学习和多次的练习的才能在面试的时候发挥出来。.鐣欏璁哄潧-涓浜-涓夊垎鍦
 楼主| aifer 发表于 2016-11-4 04:42:34 | 显示全部楼层
第二轮挂了。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-6 04:41

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表