OA辅助 / 面试训练复盘

Adobe SWE OA|Interval Merge + Binary DP 在线笔试解析

Adobe 的 OA 先看读题和边界,再看代码是否能跑通。计时开始后别急着把模板铺满:先写清输入约束,确认空数组、重复区间和边界相连时的结果。两道题里,一道是区间合并变体,另一道把二进制串的状态转移藏在操作顺序里。 第一题拿下后,留三分。

Adobe SWE OA|Interval Merge + Binary DP 在线笔试解析主题图解
训练主题配图 · 非客户现场证明

Adobe 的 OA 先看读题和边界,再看代码是否能跑通。计时开始后别急着把模板铺满:先写清输入约束,确认空数组、重复区间和边界相连时的结果。两道题里,一道是区间合并变体,另一道把二进制串的状态转移藏在操作顺序里。 第一题拿下后,留三分钟把样例改成边界样例再跑一遍,比立刻跳到第二题更值。HackerRank 页面里能看到的测试不多,函数返回值、索引和溢出才是最后容易丢分的地方。

第一题:带优先级的区间合并

题目描述

给出一批 [start, end, priority] 任务。时间重叠时,只保留优先级更高的任务片段;优先级相同则按输入顺序保留。输出按时间排序、彼此不重叠的片段列表。输入本身无序,且端点可以相等。

解题思路

先按 start 、 end 和输入序号排序。维护结果列表的最后一个片段,遇到重叠区间时把交集单独切出来比较优先级,再将左右剩余部分放回待处理序列。实现时不要原地修改正在遍历的列表;把切分后的片段放进临时数组,最后按起点合并相邻且属性相同的段。这样每一次重叠都能明确处理,不会把相接区间误当成交集。 复杂度 :排序 O(n log n),切分后的片段数决定后续扫描成本。

第二题:禁止相邻 1 的二进制串计数

题目描述

给定长度 n 和若干被固定的下标,构造长度为 n 的二进制串。任意两个相邻位置不能同时为 1 ,固定位置必须遵守输入值。返回不同合法构造的数量,结果对给定模数取余。

解题思路

用两个状态记录当前位置结尾为 0 与为 1 的方案数。当前位置固定为 0 时,只更新 dp0 = old0 + old1 ;固定为 1 时,只能从 old0 转移;未固定时同时做两种转移。开始前先检查相邻固定 1 ,发现冲突直接返回零。代码里把模运算放在每次加法后,避免语言的整型范围把结果带偏。 复杂度 :时间 O(n),空间 O(1)。

做题过程里该留意什么

区间题先写清端点语义。闭区间的 [2, 4] 与 [4, 6] 是否冲突,决定比较符是 < 还是 <= 。 DP 题把 n=1 、全固定和首位固定为 1 单独跑一遍,能很快发现初始状态写反的问题。 写完函数后用一组乱序输入和一组全部相邻输入检查输出顺序;不要只用题面样例。

FAQ

Adobe OA 只有算法题吗?

岗位和批次不同会有变化。准备时把 HackerRank 的函数式输入、调试输出受限和运行时约束一起练,比只背题名更实用。

第二题为什么不用递归?

递归能表达状态,但线性 DP 更容易控制取模和固定位置。面试时优先把两种结尾状态写出来,代码会短很多。

参考来源

Adobe MTS-1 的 HackerRank 流程与编程环节 Adobe Software Engineer Internship 的在线测试与技术面记录 Adobe Software Engineer 候选人反馈

联系 VOPathway

如果你希望把这套方法用于自己的 OA 或 VO 准备,可以把目标岗位、当前阶段、面试时间和主要难点发给 VOPathway,我们会据此安排针对性的练习与复盘。

  • 微信:Coding0201
  • 邮箱:[email protected]
  • Telegram:@OAVOProxy
  • WhatsApp:+86 178 6396 8105

可提供 OA辅助、OA辅导、VO辅助与 VO辅导。文章用于训练参考,不代表相关公司的官方流程;实际安排请以候选人收到的通知为准。

每一步,都更接近准备充分的自己。

本文用于面试准备与训练复盘。公司名称仅用于标识题型素材主题,不代表官方合作或录用承诺。

预约一次训练复盘 ↗