剛剛完成了 Intuit SWE OA ,趁記憶還新鮮趕緊來寫這篇分享。說實話,做之前我在各平臺找了很久相關帖子,零零散散的資訊拼在一起也不完整,所以想把自己的完整經歷整理出來,希望能幫到後面準備的同學。
整體感受是:Intuit 的 OA 不是那種靠刷 Hard 題硬過的型別,但也絕對不是隨便寫寫就能過的。它考的不是你能不能解題,而是你寫的程式碼夠不夠穩、夠不夠工程化。我做完之後感覺還行,但回頭看確實有幾個邊界 case 當時沒想到——這也是我想特別提醒大家的地方。

整體流程概覽
Intuit 近期(2025 Q4 ~ 2026 Q1)New Grad / SWE 1 的招聘流程基本如下:
- 網申 → 簡歷篩選
- OA(2-3題):平臺為 HackerRank 或 Glider,部分職位走 Uptime Crew 招聘平臺
- Recruiter Phone Screen:30 分鐘,行為題 + AI 使用話題
- Technical Phone Screen / VO:視崗位而定,1 ~ 2 輪技術面
- Offer / Rejection
部分崗位(透過 Uptime Crew 投遞的)需先完成 Uptime 內部的 90 分鐘 coding challenge,過了再移交 Intuit 本體面試。
Intuit SWE 26 OA 最新真題分享
以下為候選人實際遇到的高頻題目(Programhelp整理)
伺服器故障計數
你有 n 臺伺服器,ID 分別為 s1, s2, ..., sn。系統會處理一系列日誌條目,每條日誌的格式為:
,其中status只能是"success"或"error"。
你需要為每臺伺服器記錄它的連續錯誤次數,規則如下:
- 如果一臺伺服器連續記錄了 3 條
"error"日誌,它會被判定為故障並被替換(替換後的伺服器仍使用同一個 ID)。 - 伺服器被替換後,它的連續錯誤次數會重置為 0。
- 一條
"success"日誌也會將該伺服器的連續錯誤次數重置為 0。
你的任務是:處理所有日誌條目後,統計總共發生了多少次伺服器替換。
示例:
輸入:n = 2,日誌 = ["s1 error", "s1 error", "s2 error", "s1 error", "s1 error", "s2 success"]
輸出:1
解題思路:
用雜湊表記錄每臺伺服器連續“error”次數。遇到“success”將該伺服器計數清零;遇到“error”計數加一,若達到3次則替換次數+1並將計數清零,繼續處理所有日誌,最終返回替換總數。
字串最小長度
給定一個僅由字元 'A' 和 'B' 組成的字串 seq。
你可以重複執行以下操作:
- 刪除任意出現的子串
"AB"或"BB"。 - 刪除後,字串的剩餘部分會自動拼接在一起。
你的任務是:執行任意次有效刪除後,求出字串可能的最小長度。
注:子串指的是連續的字元序列。
示例:
輸入:seq = "BABBA"
輸出:1
解題思路:
可刪“AB”或“BB”等價於:每遇到一個B,只要左邊還有字元就能和它組成可刪對並一起消掉。用棧模擬:讀到A入棧;讀到B若棧非空就彈棧(刪掉一對),否則入棧。最後棧長度即最小剩餘長度。
Pair Swapping
天平的兩個托盤上各放了若干個砝碼。你需要判斷:能否透過交換兩個托盤上各一個砝碼,讓天平保持平衡。
給定兩個整數陣列,分別代表兩個托盤上的砝碼重量。請編寫程式判斷是否存在這樣一對砝碼,交換後天平平衡。
輸入格式:
- 第一行:一個整數
M,代表第一個托盤上砝碼的數量。 - 第二行:
M個用空格分隔的整數,代表第一個托盤上的砝碼重量。 - 第三行:一個整數
N,代表第二個托盤上砝碼的數量。 - 第四行:
N個用空格分隔的整數,代表第二個托盤上的砝碼重量。
輸出:
如果存在這樣的一對砝碼,返回 true;否則返回 false。
解題思路:
透過數學推導簡化判斷邏輯,首先計算兩個托盤砝碼的總重量,分別記為 sum1 和 sum2。假設交換的兩個砝碼重量為 a(來自第一個托盤)和 b(來自第二個托盤),交換後平衡的條件是 sum1 – a + b = sum2 – b + a,整理後可得 sum1 – sum2 = 2 (a – b),這說明兩個托盤的總重量差必須是偶數,否則直接返回 false。若總重量差是偶數,計算目標差值 diff=(sum1-sum2)/2,接著遍歷第一個托盤的每個砝碼 a,判斷是否存在 b=a-diff 且 b 在第二個托盤中,存在則返回 true,遍歷結束都未找到則返回 false,避免了暴力雙重迴圈,提升效率。
Oldest and Youngest
你正在從一棟著火的建築中疏散人質,每次只能帶走兩個人。你決定每次優先帶走最年長和最年輕的人質。
請編寫一個函式,從表示人質年齡的整數陣列中,找出最年長和最年輕的人質。
輸入格式:
- 第一行:一個整數
N,代表人質的數量。 - 第二行:
N個用空格分隔的整數,代表每個人質的年齡。
輸出格式:
輸出最年長人質的年齡和最年輕人質的年齡(按題目要求的順序)。
解題思路:
直接遍歷陣列獲取極值,首先判斷人質年齡陣列是否為空,非空的情況下,初始化最年輕年齡為陣列第一個元素,最年長年齡也為陣列第一個元素。然後從第二個元素開始遍歷整個年齡陣列,每遍歷一個年齡,就與當前最年輕年齡對比,若更小則更新最年輕值;與當前最年長年齡對比,若更大則更新最年長值。一次遍歷就能同時找到兩個極值,時間複雜度最低,遍歷完成後直接輸出最年長和最年輕年齡即可。
別讓海投換來的 OA 成為你上岸的終點
現在的 Headcount 每天都在縮減。你拿到手裡的每一個 OA,都可能是你今年唯一且最後的上岸機會。別用這寶貴的機會去測試自己的運氣和所謂的題感。
把專業的事,交給頂級的專家。如果你現在手裡捏著遲遲不敢點開的 OA 連結,或者正因為馬上到來的 VO 而夜不能寐,立刻去聯絡 ProgramHelp 。用最稳、最狠、最准的方式,把那个本该属于你的 Offer,牢牢抓在手里!