Intuit OA 最近又开始陆续发了,风格和往年差不多,基本还是 Code、SQL、Bash 三道题。AI 岗和 SDE 岗我们都带过,整体难度不高,思路清晰的话时间完全够用。今天把题目和当时的解题思路整理出来,给正在准备的同学参考。

第一题:Student Arrangement
题目
给你一个整数数组 arr,其中部分位置是 0(表示空缺),其余位置已经填好了数字。你需要把所有 0 替换成任意整数,使得最终数组任意两个相邻位置的绝对差不超过 1。求有多少种不同的填法,结果对 109+7 取模。题目保证数组里至少有一个非零元素,n≤1500。

解题思路
这题的关键是分段处理。已经填好的数字会把数组自然拆成若干段连续的 0,每一段之间相互独立,最终答案是各段方案数的乘积。
对于某一段连续的 0,它的左右两端(如果存在)是已知数字,相当于从一个固定起点走到一个固定终点。每一步你只能让当前数字 -1、+1 或者保持不变。因为总位移是固定的,我们可以枚举这一段里 -1 的次数、+1 的次数和不变的次数,用多重集组合数公式直接计算合法方案。注意处理开头或结尾就是 0 的边界情况,以及中间某段左右两端差值过大导致无解的情况。整体属于比较标准的组合计数,想清楚约束后套公式就能过。
第二题:SQL Capitalization Report
题目
需要写一条 SQL,按 sector 分组统计每个板块下所有公司的总市值,输出两列:sector 和 total_capitalization。市值结果要保留两位小数,并带上单位后缀——达到十亿用 B,百万用 M。结果按 sector 升序排列。
原始表里市值是字符串形式(例如 “10B”、”5M”),还可能存在不完整数据(显示为 “n/a”)。只有同时拥有有效 sector 和有效市值的公司才参与统计。

解题思路
处理流程大致是:先过滤掉 sector 为空或市值为 “n/a” 的行;把带单位的字符串拆成数字部分和单位部分,B 乘 109,M 乘 106,转成纯数值后按 sector 求和;最后再根据总和的大小决定用 B 还是 M 重新格式化,并保留两位小数。注意单位换算和字符串拼接的细节,避免精度丢失。
第三题:Bash Pattern Matching
题目
给定一个字符串数组,统计其中有多少个字符串至少包含一个大写字母,把结果直接输出到 STDOUT。

解题思路
这题最简单。遍历数组,对每个字符串用正则 [A-Z](或等价的字符判断)检查是否存在大写字母,匹配到就计数加一。注意空字符串、全小写、全大写以及大小写混合的情况即可,几行代码就能搞定。
整体感受
Intuit 这套 OA 的特点是题型固定、难度友好,更看重你能不能快速把思路落地,而不是考很偏的算法。第一题需要一点组合数学和分段处理的意识,第二题考字符串解析与聚合,第三题基本是送分。平时把分段组合计数、SQL 里的字符串转换和简单 Bash/正则练一练,现场基本不会卡住。
最近 Amazon、Google、Microsoft、Meta、TikTok 的 OA 和 VO 都还在持续进行中,真实 mock 和题库我们都有。Interviewshow 专注北美技术岗位的面试辅助,团队来自一线大厂,提供 OA 辅助、VO mock 和一对一指导。无论你是在准备 Intuit 还是其他公司,有需要都可以直接聊。
祝大家早日通过 OA,顺利进面!