一个小时之前的pure storage on-campus interview 面经. 事情还要从昨天晚上说起。昨晚 pure storage 来做 tech talk,结果没选对地方,到了那里一看总共就5个人(后来又来了两个,一共7个人,我都为 talk 的 sde小哥和recruiter小姐姐感到尴尬)
本来是奔着1TB 的 SSD 去的,没想到最后小姐姐说我们这里有一份题,如果做的好的话我们会在明天安排 on-campus interview。 然后旁边那个中了 SSD 的小姐姐头也不回的走了,最后只剩四个人在做题。
题目是之前有帖子提到的debug一个多线程的stack,并补充这个stack的pop操作。看到多线程我这个小白一脸懵逼,还好最后找出来那个 bug(具体见http://www.1point3acres.com/bbs/thread-224257-1-1.html
一个小时之后收到了 on-campus 的邀请,点进去选时间,发现一共5个 time-slot(还记得刚刚说一共只有4个人拿了题么。。。再次为他们感到尴尬)然后晚上回去准备,看到了上面那个帖子和http://www.1point3acres.com/bbs/thread-295742-1-1.html,因为没有答案就自己瞎想了一下(多线程小白瑟瑟发抖~)
然后今天面试,还是上面那个链接里的那道题,和第一个帖子不一样的是面试官小哥要求 callback 必须在所有 work函数执行完以后再执行。一开始就硬着头皮上了,先说了一个用 list 的解法,然后发现要 lock,就在小哥的提示下慢慢改啊改啊,终于搞出了一个能用的版本。
正当我送了一口气时,小哥又问你能不能优化这个 class 让它更加 efficient, 我:what?然后在小哥的提示下说可以让 work 都先跑,然后又写了好几版。最后不知道是小哥真的满意了还是时间差不多了小哥就说 great,有什么问题要问我吗?
凭着记忆写了下当时的代码,一共四个版本(orz),如果有那里不对的,请直接在评论或者联系我修改。。。
最后求大米~
|