最近刚刚结束了一场 Intuit 的 Online Assessment ,趁着记忆还很新鲜,来和大家第一时间分享一下。这次学生比较拼,一次性投了 Backend 和 Fullstack 两个岗位,结果是两份 OA 全部顺利完成并通过。对于准备 Intuit 或者其他大厂 OA 的同学来说,这份经验应该能带来不少参考价值。

整体体验
先聊聊 Intuit OA 的整体感受:
- 每份 OA 一共 4 道题:
- 2 coding(需要补全
solve函数) - 2 multiple choice(偏向计算机基础/逻辑,难度不高)
- 2 coding(需要补全
- 编程题思路直白,不存在特别复杂的数据结构考点。
- 时间给得比较充裕,平均 20–25 分钟做一道题就绰绰有余。
所以总体氛围比一些大厂 OA 轻松很多,只要基础功夫扎实,发挥稳定就能顺利通过。
Coding 部分
Question 1: Three-Value Sorting
Problem Statement:
You are given an array consisting of only three distinct integers (for example, -1, 0, 1). Write a program to sort the array in ascending order with a time complexity of O(n).
Input:
- The first line contains an integer
N, the size of the array. - The second line contains
Nspace-separated integers, the array elements.
Output:
- Print the sorted array.
Constraints:
1 ≤ N ≤ 200
Array elements ∈ {-1, 0, 1}
思路解析
这题就是经典的 Dutch National Flag Problem 简化版。因为数组里只有三种元素,最简单的办法就是:
- 遍历数组,统计
-1, 0, 1的出现次数。 - 按照顺序把它们重新拼回结果数组。
这样写起来很直观,时间复杂度 O(n),空间复杂度 O(1),完全符合要求。
Python 示例
def solve():
n = int(input().strip())
arr = list(map(int, input().split()))
count = {-1: 0, 0: 0, 1: 0}
for num in arr:
count[num] += 1
result = []
for val in [-1, 0, 1]:
result.extend([val] * count[val])
print(" ".join(map(str, result)))
Question 2: Triple Occurrence Check
Problem Statement:
You are given an array of positive integers. Determine whether there exists a number in the array that appears exactly three times.
Input:
- The first line contains an integer
N, the size of the array. - The second line contains
Nspace-separated integers, the array elements.
Output:
- Print
trueif such a number exists, otherwise printfalse.
Constraints:
1 ≤ N ≤ 200
1 ≤ arr[i] ≤ 500
At most one number satisfies the condition
思路解析
这道题考察的就是哈希表:
- 遍历数组,用 map / dict 统计频次。
- 如果某个元素的频次等于 3,就输出 true。
- 如果遍历结束都没找到,就输出 false。
注意关键点是 exactly three times,不要写成 “≥3 次”。
C++ 示例
#include <bits/stdc++.h>
using namespace std;
void solve() {
int n;
cin >> n;
vector<int> arr(n);
for (int i = 0; i < n; i++) cin >> arr[i];
unordered_map<int,int> freq;
for (int num : arr) {
freq[num]++;
}
bool found = false;
for (auto &p : freq) {
if (p.second == 3) {
found = true;
break;
}
}
cout << (found ? "true" : "false") << endl;
}
Multiple Choice 部分
除了两道编程题,还有两道选择题,偏向基础知识。印象中题型包括:
- 算法复杂度的判断
- 简单逻辑推理
- 数组/字符串基础操作
难度非常友好,不会出现什么刁钻的陷阱。
Programhelp 助攻优势
很多同学其实刷题量足够,但一到真实 OA 环境还是会出错:时间没分配好、边界条件漏掉、最后几个 hidden test case 没通过。像这次 Intuit 的 OA,虽然题目不算难,但机会只有一次,容不得失误。
我们 Programhelp 长期提供 OA 辅助 服务:
- 远程无痕联机:在不影响你操作的情况下,实时提供后台支持。
- 100% 过测保障:确保所有 test case 都能顺利通过,不通过不收费。
- 语音助攻提醒:遇到卡点时给出思路提示,避免慌乱浪费时间。
对很多同学来说,这些助攻往往能在关键时刻救场,确保不浪费宝贵的 OA 机会。毕竟一次 OA 通过,就可能是一个 offer 的开始。
如果你也即将迎来 OA 或 VO,不想孤军奋战,可以随时找我们交流。祝大家都能顺利通关,拿下理想的 offer!