Uber 校招 Mobile Engineer OA 深度复盘:105 分钟三题拆解与第三题 O(n) 最优解(附 2026 上岸案例)

核心结论先说:这场 OA 的分水岭不在语法,而在你能否快速识别“排列 + 区间”不变量。第三题用 min/max 位置区间扩张O(n) 可过 2*10^5

目录

一、考情速览

  • 平台:HackerRank
  • 时长:105 分钟
  • 题量:3 题
  • 体感难度:中等偏难,第三题偏难
  • 申请地:Toronto, Canada

这类校招 OA 的典型结构是:1 道热身 + 1 道模板变体 + 1 道判定型难题。你的目标不是“每题都写最优雅”,而是“每题都一次 AC”。

二、题 1:LeetCode 696(送分但别超时)

题型是经典 Count Binary Substrings。 最稳做法:统计相邻分组长度,答案累加 min(prev_group, curr_group)

  • 时间复杂度:O(n)
  • 空间复杂度:O(1)(只存前后组长度)

常见失误:直接枚举子串,复杂度爆炸。

三、题 2:单调栈(中等偏难)

原帖没给完整题面,但从“单调栈”判断,本质多半是“最近更大/更小 + 一次遍历”。

实战建议:

  • 先判断你要的是“下一个更大”还是“下一个更小”。
  • 栈里放“索引”而非值,便于回填答案。
  • 相等元素的处理要先定规则(> 还是 >=),否则样例过、隐藏用例挂。

四、题 3:Balanced Numbers(真正拉开差距)

题意简化: 给定排列 p1..n 各出现一次)。对每个 k,判断是否存在某个子数组恰好是数字 1..k 的一个排列。

关键不变量

pos[x] 是数字 xp 中的位置。 k 是 balanced,当且仅当:

max(pos[1..k]) - min(pos[1..k]) + 1 == k

为什么成立:

  1. 如果某段子数组是 1..k 的排列,那么这 k 个数字的位置必落在一个长度为 k 的连续区间内。
  2. 反过来,如果这 k 个数字的位置跨度正好为 k,由于排列里元素唯一,这个区间必然恰好装下 1..k,不会多也不会少。

所以可以从 k=1..n 递推维护区间最小/最大位置,线性出答案。

可提交 Python 代码

def countBalancedNumbers(p):
    n = len(p)
    pos = [0] * (n + 1)

    for i, v in enumerate(p, start=1):
        pos[v] = i

    ans = ['0'] * n
    mn = n + 1
    mx = 0

    for k in range(1, n + 1):
        idx = pos[k]
        if idx < mn:
            mn = idx
        if idx > mx:
            mx = idx

        if mx - mn + 1 == k:
            ans[k - 1] = '1'

    return ''.join(ans)
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

示例 p = [4, 1, 3, 2] 输出 1011

五、105 分钟实战时间分配

  • 0-8 分钟:快速读完三题,锁定先后顺序。
  • 8-25 分钟:拿下题 1,确保一次通过。
  • 25-60 分钟:主攻题 2,优先过边界。
  • 60-95 分钟:做题 3,先写判定核心,再补输入输出。
  • 95-105 分钟:统一回归测试,重点测 n=1、升降序、极限长度。

六、2026 上岸案例:14 天冲刺拿下

候选人:L 同学,国内双非,Android 实习 1 段,目标加拿大校招。 起点:首次模拟 OA 仅通过 1/3,第三题类型几乎不会。 我们给的方案:

  • 第 1-4 天:单调栈与双指针高频题压缩训练。
  • 第 5-9 天:排列不变量专题(位置映射、区间覆盖、前缀性质)。
  • 第 10-14 天:3 套 105 分钟全真计时 + 逐题复盘模板。

结果:

  • 2026-02-18 完成同类型 OA,三题全部通过。
  • 2026-03-04 收到北美移动端校招 offer。

七、立即预约:1v1 OA 诊断

预约 30 分钟免费评估

你将获得:

  • 你的 OA 题型短板雷达图
  • 2 周可执行刷题路径
  • 针对目标岗位的真题优先级清单

面试救急

距离笔试不到 72 小时? 我们提供“面试救急”加速服务:当天完成能力评估、次日给出冲刺计划、第三天进行全真模拟与临场策略校准。 立即预约,优先插队排期:https://example.com/booking

Previous
Previous

Databricks Reference Check 终极复盘:要几个推荐人、会问什么、如何 7 天稳过背调(中国开发者版)

Next
Next

Goldman Sachs 2026 SWE Summer UK OA 终极复盘:两道真题最优解、Python 模板与 7 天上岸策略