Asana Mobile Team 电面

原帖地址:一亩三分地

1/4号刚结束的电面。申请的职位是Mobile – iOS,当得知面试官是Mobile – Andriod的时候,就知道这次电面应该是考算法和data structures.

先是自我介绍,说了说做过的project等等。

前两题都是地里出现过的常见题,第三题是一道DP, 也不难。全部是口头问答,不需要写码。

Define Binary Search Tree, describe an algorithm that validates if a binary tree is BST. (Leetcode – Validate BST)Describe a data structure for LRU Cache (Leetcode)Given an array to stock prices (already sorted by date), find the max profit

第三题的意思是,给你一段时间内的股票价格,例如 [1,100,5,4,3],你需要找到一个买入价和卖出价,让利润最大化。刚才的例子里,最大利润就是1的时候买入,100的时候卖出,这样利润是99. 唯一要注意的就是卖出价必须出现在买入价之后。用DP来做非常容易。

面试官很和蔼和耐心,同时也会经常提问并质疑我给出的解题方法,直到他确认我的思路是明确的时候才会move on to the next questions.

打完三题后,聊了聊Asana这次隆重的redesign和mobile team在Asana的工作内容等等。