Roblox OA 要玩小游戏和编程 |Roblox OA 北美秋招 考点拆解

17 Views
Roblox OA 要玩小游戏和编程 |Roblox OA 北美秋招 考点拆解

这个 Roblox OA 机器人25min,工厂25min,决策力25min,前哨站40min 编程50min没把握可以 辅助,其他也可以问问,跟optiver差不多的。

这套 Roblox SWE OA 共五不分:机器人 25 分钟、玩具工厂 25 分钟、Decision Making 25 分钟、前哨站 40 分钟,以及两道 Coding 50 分钟。节奏快,先熟悉游戏规则比急着冲分更重要;Coding 则是标准的读题、建模和边界检查。

Roblox 官方把技术岗位测评分成游戏化问题解决、职场决策和 Coding 三部分,并提供可重复练习的游戏环境。练习入口与测评说明 值得提前过一遍。

造小车:先跑通,再优化组合

这一段要从部件库里搭出小车,通过不同地形。每辆车最多装三个部件,部件放的位置和组合关系都会影响结果。

先用最少的部件跑通第一张地图,记录能量消耗、失效位置和部件搭配。第二张地图再改组合。不要一开始就追求复杂解法,测试回放能直接告诉你问题是动力不足、重心不稳,还是两个部件没有形成有效配对。

玩具工厂:利润不是只看售价

工厂题给定原材料、生产线、时间和仓储限制,要在 24 小时内安排生产,目标是拿到更高收益。

先算每种玩具的单位成本、单位利润和单位时间收益。原料充足却堵在某条生产线,或产成品堆积在仓库,都会让看上去利润高的方案失效。Buff 也要放进总账:它能缩短哪一段时间、增加多少产能、最后是否真的提高利润。

Decision Making:把责任讲清楚

这段是职场场景题。回答要体现三件事:问题有人负责、信息及时同步、分歧能落到行动上。

遇到上线风险,先说明影响范围和当前数据,再拉上相关同事给出可执行的处理方案;不要回避问题,也不要把责任推给别人。近期候选人记录也将这部分描述为独立的 workplace scenario 测评,而非单纯的性格问卷。相关经历

前哨站:读清资源和目标条件

前哨站的时间更长。先花几分钟确认资源流向、解锁条件和失败条件,再决定先补短板还是先扩张。每次改动后看结果,不要同时修改多项配置,否则很难判断是哪一步带来了收益或损失。

把原文里的两段 Coding 替换为以下版本即可。第一题重点改正为“每块固定含 1–16,总和为 136”;第二题改正为“选连续 k 天并强制全卖出”。

第一题:补全 4×4 方阵,再按缺失值重排

Roblox OA 要玩小游戏和编程 |Roblox OA 北美秋招 考点拆解

Question description

矩阵 Mat 有 4 行、4 × n 列,由 N 个并排的 4×4 方阵组成。每个方阵本应恰好包含 1 Arrive 16,但有一个位置用 ? 表示缺失数字。

需要完成两步:

  1. 找出每个方阵缺失的数字,并替换 ?.
  2. 按缺失数字从小到大重新排列这些 4×4 方阵;若两个方阵缺失数字相同,保持它们在原矩阵中的相对顺序。

最后返回更新后的 Mat.

Problem-solving ideas

1 Arrive 16 的和固定为 136。遍历每个方阵,累加已知数字后直接计算:

missing = 136 - knownSum

补全 ? 后,把该方阵、缺失值和原始下标一起保存。排序键使用 (missing, originalIndex),即可同时满足升序与稳定顺序要求。最后按排序结果把每个 4×4 方阵横向拼回答案矩阵。

def solution(mat):
    n = len(mat[0]) // 4
    blocks = []

    for block_id in range(n):
        start = block_id * 4
        block = [row[start:start + 4] for row in mat]

        known_sum = 0
        missing_pos = None

        for r in range(4):
            for c in range(4):
                if block[r][c] == "?":
                    missing_pos = (r, c)
                else:
                    known_sum += block[r][c]

        missing = 136 - known_sum
        r, c = missing_pos
        block[r][c] = missing

        blocks.append((missing, block_id, block))

    blocks.sort(key=lambda item: (item[0], item[1]))

    result = [[] for _ in range(4)]
    for _, _, block in blocks:
        for r in range(4):
            result[r].extend(block[r])

    return result

Complexity:补全所有方阵为 O(n),排序为 O(n log n).

第二题:把连续 k 天改成卖出,求最大总收益

Roblox OA 要玩小游戏和编程 |Roblox OA 北美秋招 考点拆解

Question description

Prices[i] denote I 天股票价格,algo[i] 表示机器人原计划:

  • 0:买入一股;
  • 1:卖出一股。

现在可选连续 k 天,把这段计划全部改成卖出。收益等于所有卖出价格之和减去所有买入价格之和。求最大收益。

Problem-solving ideas

先计算不修改计划时的原始收益:

algo[i] = 1  ->  +prices[i]
algo[i] = 0  ->  -prices[i]

如果某天原本是买入,把它改成卖出,收益会从 -prices[i] change into +prices[i],增益是:

gain[i] = 2 × prices[i]

原本已经是卖出的天改完后不变,增益为 0。因此问题变成:在 gain 数组中找长度恰好为 k 的最大子数组和,用滑动窗口完成。

def solution(prices, algo, k):
    base_revenue = 0
    gains = []

    for price, action in zip(prices, algo):
        if action == 1:
            base_revenue += price
            gains.append(0)
        else:
            base_revenue -= price
            gains.append(2 * price)

    window_sum = sum(gains[:k])
    best_gain = window_sum

    for right in range(k, len(prices)):
        window_sum += gains[right]
        window_sum -= gains[right - k]
        best_gain = max(best_gain, window_sum)

    return base_revenue + best_gain

For example prices = [2, 4, 1, 5, 2, 6, 7],algo = [0, 1, 0, 0, 1, 0, 0],k = 4:

  • 原始收益为 -15;
  • 最大增益窗口是最后四天,增益为 36;
  • 最终收益为 21.

Complexity:时间 O(n),额外空间 O(n);若不单独保存 gains,可压缩到 O(1) 额外空间。

Roblox OA 的时间安排

  • 前四段先读目标和规则,首次尝试以建立反馈为主。
  • Coding 前两分钟确认输入、输出和边界,不要边读边写。
  • 第一题完成后先跑样例,再进入第二题。
  • 最后留几分钟检查整数溢出、下标范围和空数组。

FAQ

Roblox OA Coding 是两题共用 50 分钟吗?

是,时间应按两题总量分配。先拿下结构更清晰的一题,再处理状态更多的题。

工厂题要追求最高分吗?

先保证资源链路完整,再优化利润。产能错配和原料浪费会直接拖低结果。

车辆题卡住怎么办?

回看测试结果,单独改一个部件或位置。一次改太多项,无法判断真正生效的组合。

参考来源

备考支持

Roblox OA 的准备重点是限时读题、游戏化任务里的状态判断,以及 Coding 的实现与调试。OA 题型解析、算法训练和模拟练习都应围绕这些环节展开。

author avatar
Jack Xu MLE | Microsoft Artificial Intelligence Technician
Ph.D. From Princeton University. He lives overseas and has worked in many major companies such as Google and Apple. The deep learning NLP direction has multiple SCI papers, and the machine learning direction has a Github Thousand Star⭐️ project.
END
 0