最近剛剛結束了一場 Intuit 的 Online Assessment ,趁著記憶還很新鮮,來和大家第一時間分享一下。 這次學生比較拼,一次性投了 Backend 和 Fullstack 兩個崗位,結果是兩份 OA 全部順利完成並通過。 對於準備 Intuit 或者其他大廠 OA 的同學來說,這份經驗應該能帶來不少參考價值。

整體體驗
先聊聊 Intuit OA 的整體感受:
- 每份 OA 一共 4 道題:
- 2 coding(需要補全
solve函數) - 2 multiple choice(偏向計算機基礎/邏輯,難度不高)
- 2 coding(需要補全
- 程式設計題思路直白,不存在特別複雜的數據結構考點。
- 時間給得比較充裕,平均 20–25 分鐘做一道題就綽綽有餘。
所以總體氛圍比一些大廠 OA 輕鬆很多,只要基礎功夫紮實,發揮穩定就能順利通過。
編碼部分
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
using namespace std;
void solve() {
int n;
cin >> n;
vector arr(n);
for (int i = 0; i > arr[i];
unordered_map 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;
}
多項選擇部分
除了兩道程式設計題,還有兩道選擇題,偏向基礎知識。 印象中題型包括:
- 演算法複雜度的判斷
- 簡單邏輯推理
- 陣列/字串基礎操作
難度非常友好,不會出現什麼刁鑽的陷阱。
Programhelp 助攻優勢
很多同學其實刷題量足夠,但一到真實 OA 環境還是會出錯:時間沒分配好、邊界條件漏掉、最後幾個 hidden test case 沒通過。 像這次 Intuit 的 OA,雖然題目不算難,但機會只有一次,容不得失誤。
我們 Programhelp 長期提供 OA 輔助 服務:
- 遠端無痕連線:在不影響你操作的情況下,即時提供後台支援。
- 100% 過測保障:確保所有 test case 都能順利通過,不通過不收費。
- 語音助攻提醒:遇到卡點時給出思路提示,避免慌亂浪費時間。
對很多同學來說,這些助攻往往能在關鍵時刻救場,確保不浪費寶貴的 OA 機會。 畢竟一次 OA 通過,就可能是一個 offer 的開始。
如果你也即將迎來 OA 或 VO,不想孤軍奮戰,可以隨時找我們交流。 祝大家都能順利通關,拿下理想的 offer!