Uber OA HackerRank Interview Sharing|Uber Online Assessment Three Real Questions Analysis

17 Views
No Comment

最近我们这边刚带一位学员走完 Uber OA 。和之前很多场次一样,今年不少 Uber OA 已经从 CodeSignal 转到了 HackerRank 平台。

这场考试的结构其实很典型:3 道 coding 题 + 限时完成。这次我们是远程实时辅助的方式带着学员一起做完整场 OA,整体节奏控制得比较稳,大概 30 分钟左右三道题全部完成并通过测试。下面把这场 Uber OA 的题型和核心思路复盘一下。

Uber OA HackerRank Interview Sharing|Uber Online Assessment Three Real Questions Analysis

第一题:Python: Lambda Map

Question meaning

题目给一个二维数组,需要对每个子数组进行处理:先筛选出所有正整数,再对这些正整数进行平方,最后返回新的二维数组。

Problem-solving ideas

外层用 map 遍历每一个子数组,在子数组内部先用 filter 过滤出正整数,然后再用 map 对这些数字进行平方运算,最后把结果转换成列表返回。

这道题的核心不是算法复杂度,而是对 Python lambda、map、filter 这些函数式写法是否熟悉。如果平时习惯用这种写法,基本可以用一行表达式完成整个逻辑。

第二题:Node Disconnection

Question meaning

题目给一个字符串,每次操作可以删除一段连续相同的字符,需要计算最少多少次操作可以把整个字符串删掉。

Problem-solving ideas

关键点在于理解操作规则。一段连续相同字符在一次操作中就可以全部删除,所以问题本质就是统计字符串中有多少个连续字符段。

实现时只需要从左到右扫描字符串。如果当前字符和前一个字符不同,就说明进入了新的连续段,计数加一即可。整道题就是一个线性遍历,时间复杂度是 O(n)。

这一题很多人第一反应会去模拟删除过程,其实完全没必要,只要抓住“连续段数量”这个核心就能很快写出来。

第三题:Purchase Optimization

Question meaning

比较典型的贪心题。题目给出商品价格数组 prices,一个起始位置 pos,以及总预算 amount。

规则是从 pos 开始往后购买商品,只要当前预算可以买得起,就继续购买,累计花费不能超过 amount。当剩余金额不够买下一个商品时停止,最后返回一共买了多少件商品。

Problem-solving ideas

解法就是顺序遍历。从 pos 开始检查每个价格,如果 amount 大于等于当前商品价格,就进行购买,同时更新剩余预算并增加计数;如果预算不够,就直接结束循环。

整个过程就是一个简单的顺序贪心策略,复杂度也是 O(n)。

OA 不熟悉?不用慌

如果你也即将参加 Uber OA,但对这种在线笔试平台不太熟悉,或者对时间节奏、题型把握没有太大信心,其实完全可以提前找有经验的人一起准备。我们这边长期在带同学做各类公司 OA,比如在 HackerRank、CodeSignal 这类平台上的 coding assessment。觉得自己一个人把握不太稳,欢迎 Contact us .

author avatar
Jory Wang Amazon Senior Software Development Engineer
Amazon senior engineer, focusing on the research and development of infrastructure core systems, with rich practical experience in system scalability, reliability and cost optimization. Currently focusing on FAANG SDE interview coaching, helping 30+ candidates successfully obtain L5/L6 Offers within one year.
END
 0