Uber OA HackerRank 面經分享|Uber Online Assessment 三道真題思路解析

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

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

Uber OA HackerRank 面經分享|Uber Online Assessment 三道真題思路解析

第一题:Python: Lambda Map

題意

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

解題思路

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

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

第二题:Node Disconnection

題意

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

解題思路

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

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

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

第三题:Purchase Optimization

題意

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

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

解題思路

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

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

OA 不熟悉?不用慌

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

author avatar
Jory Wang Amazon資深軟體開發工程師
Amazon 資深工程師,專注 基礎設施核心系統研發,在系統可擴充套件性、可靠性及成本最佳化方面具備豐富實戰經驗。 目前聚焦 FAANG SDE 面試輔導,一年內助力 30+ 位候選人成功斬獲 L5 / L6 Offer。
END
 0