最近剛整理了一場 Salesforce 的 OA,題目不算偏,但挺考基礎穩定性的,簡單記錄下兩道題的思路,給後面要做 Salesforce OA 的同學一個參考。這場 Salesforce OA 的題目設定整體偏基礎,但非常典型。不是靠偏門技巧取勝,而是看你對常見資料結構和演算法模型是否理解到位、實現是否穩定。
從我們 ProgramHelp 帶過的情況來看,這類 OA 最大的風險不是“不會”,而是在細節上丟分。
Salesforce OA 整體流程與題型概覽
從最近幾批 Salesforce OA 的反饋來看,整體形式相對穩定,屬於典型的大廠 Online Assessment 風格,主要考察候選人的基礎編碼能力和演算法熟練度。
OA 通常透過第三方平臺完成,題目數量以 2 道為主,個別批次可能出現 3 道題。整體時長一般在 60–90 分鐘區間,對時間管理有一定要求,但不屬於極限壓縮型考試。
題型方面,Salesforce OA 以經典資料結構和演算法題為主,很少出現特別偏門或需要複雜數學推導的內容,常見考察方向包括:
- 連結串列、陣列、字串等基礎資料結構
- HashSet / HashMap 的合理使用
- 動態規劃基礎模型(如 LCS、子序列問題)
- 簡單的邊界條件與複雜度分析能力
語言支援相對友好,主流語言如 Java、Python、C++ 都可以使用。整體編碼環境偏向“工程化實現”,比起追求演算法難度,更看重程式碼的可讀性、穩定性以及對邊界情況的處理是否到位。
Salesforce OA 的篩選邏輯並不是用超難題卡人,而是透過這些高頻母題,快速判斷候選人是否具備紮實的基礎和可靠的程式碼習慣。這也是為什麼看起來不難,但實際透過率並不低估的原因。
T1:單連結串列去重(保留首次出現)

題目大意是:
給一個單連結串列,只保留每個值第一次出現的節點,後面所有重複值的節點都刪掉,最後返回連結串列頭。
這是非常典型的連結串列題,Salesforce 這種 OA 很愛考。
整體思路就是 HashSet + 指標遍歷:
- 用一個 HashSet 記錄已經出現過的值
- 用 curr 指標從頭遍歷連結串列
- 用 prev 指標指向當前已經保留下來的最後一個節點
遍歷時分兩種情況:
- 如果 curr.val 沒出現過
- 加入 HashSet
- prev 移到 curr
- 如果 curr.val 已經在 HashSet 裡
- 說明是重複節點
- 用 prev.next = curr.next 把當前節點刪掉
注意點主要在指標更新上,尤其是刪除節點的時候 prev 不要亂動,不然容易斷鏈。
T2:最長公共子序列(LCS)

第二題是給兩個字串,求最長公共子序列的長度。
這是標準 DP 模板題,沒什麼花活,OA 裡就是看你會不會寫對。
常見解法是 n * m 的動態規劃:
- dp[i][j] 表示
- x 的前 i 個字元
- y 的前 j 個字元
- 能得到的最長公共子序列長度
轉移邏輯:
- 如果 x[i-1] == y[j-1]
- dp[i][j] = dp[i-1][j-1] + 1
- 否則
- dp[i][j] = max(dp[i-1][j], dp[i][j-1])
最後答案就是 dp[n][m]。
一些個人感受
整體來說 Salesforce OA 的風格就是:
- 不追求難題
- 但非常容易在細節上卡人
- 連結串列指標、DP 下標寫錯一次就直接掛
這兩題如果平時刷過 LeetCode,其實都見過原型,但 OA 環境下時間緊,還是建議提前把這些基礎母題寫熟。
希望對準備 Salesforce OA 的同學有點幫助。
備戰Salesforce OA怕栽在細節上?
ProgramHelp 幫你精準避坑、穩拿高分!要知道Salesforce OA不考偏題難題,卻極度考驗基礎穩定性,連結串列指標混亂、DP下標出錯都可能直接掛掉。我們結合大量真實輔導案例,深度拆解其高頻考點,針對單連結串列去重、最長公共子序列這類典型題型,提供清晰解題思路與細節把控技巧,幫你吃透HashSet遍歷、動態規劃等核心方法,規避斷鏈、下標混淆等常見失分點。無論你是擔心OA時間緊沒把握,還是想提前吃透基礎母題穩心態,ProgramHelp都能為你提供針對性備考指導。更有OA代寫、實時面試助攻、全套求職護航等服務,從備考到拿Offer全程助力,讓你少走彎路,輕鬆攻克Salesforce求職第一關,衝刺心儀大廠!