SIG SWE OA 面试复盘|限时 Coding 里,图搜索和性能优化如何守住后两题
SIG 的 SWE OA 一上来就要把输入、约束和复杂度说清楚。前半段优先把可读代码写稳,后半段再看图搜索和状态压缩;不要把时间花在漂亮封装上,先保住可提交的主路径。
SIG 的 SWE OA 一上来就要把输入、约束和复杂度说清楚。前半段优先把可读代码写稳,后半段再看图搜索和状态压缩;不要把时间花在漂亮封装上,先保住可提交的主路径。
第一题:多约束盘面恢复
题目描述
给定一个 n × n 的盘面,部分格子已填值。每次可以在空格写入一个值,但同一行、同一列和指定分区都不能重复。要求返回一组完整盘面;若无解则返回空结果。输入规模足以让逐格暴力枚举超时。
解题思路
先为每一行、列和分区维护 bitmask。递归时不要固定从左到右选格,而是选候选值最少的空格;每次落子只改三份 mask,回溯时原样撤销。候选集合由 fullMask & ~(rowMask | colMask | boxMask) 得到,遍历最低位即可。这样的写法把约束检查压到 O(1),也方便在现场解释剪枝为什么有效。类似的限时算法沟通,关键在于把状态和撤销动作讲完整。 SIG 候选人的技术轮复盘 里也提到,后续会继续追问优化依据。
第二题:行情依赖图的增量刷新
题目描述
系统接收一组行情节点及依赖边。某个底层节点发生更新后,需要找出全部受影响节点,并按依赖顺序重新计算。图中允许多个上游汇入同一节点,重复计算会直接拖慢整批刷新。
解题思路
建图时同时维护正向邻接表和入度。先从变更节点做 BFS 标记受影响集合,再只在这部分子图上执行 Kahn 拓扑排序。节点入队前要确认受影响上游都已完成,避免父节点尚未更新就使用旧值。若出现剩余入度不为零的节点,直接返回环路错误,不要悄悄给出部分结果。 复杂度 :标记与排序合计 O(V + E),只扫描受影响子图。
做题过程
前二十分钟先完成第一题的状态结构和两个样例;接着给第二题补一组菱形依赖和一组环路输入。提交前重点检查空输入、孤立节点、重复边和无解盘面。SIG 的候选反馈里能看到 OA 后还会延伸到编码与设计讨论, 这份软件工程师流程记录 适合用来安排下一阶段的复习。
备考建议
练习时把 bitmask 回溯写成可撤销的三行更新,不要依赖全量复制数组。 图题先说清楚“受影响范围”和“执行顺序”是两件事,再落到 BFS 与拓扑排序。 代码写完留五分钟手推一遍:同一节点被多条边命中时,是否仍只重算一次。
FAQ
SIG OA 要先刷哪类题?
先练约束搜索、图遍历和复杂度优化。题目进入后半段时,清晰地解释剪枝和数据结构取舍比堆砌模板更有用。
写完代码后还需要准备什么?
把每个状态变量的含义、边界输入和复杂度准备成一段能直接口述的话。技术轮会顺着这几处继续追问。
参考来源
SIG Software Engineer Interview Guide SIG SWE intern interview experience SIG Software Engineer interview questions
联系 VOPathway
如果你希望把这套方法用于自己的 OA 或 VO 准备,可以把目标岗位、当前阶段、面试时间和主要难点发给 VOPathway,我们会据此安排针对性的练习与复盘。
- 微信:Coding0201
- 邮箱:[email protected]
- Telegram:@OAVOProxy
- WhatsApp:+86 178 6396 8105
可提供 OA辅助、OA辅导、VO辅助与 VO辅导。文章用于训练参考,不代表相关公司的官方流程;实际安排请以候选人收到的通知为准。
本文用于面试准备与训练复盘。公司名称仅用于标识题型素材主题,不代表官方合作或录用承诺。
预约一次训练复盘 ↗