最近剛刷完 Snowflake New Grad OA ,一句話總結:題量 3 道、120 分鐘,難度中等偏高,時間壓力明顯。Snowflake OA 的風格和傳統大廠不太一樣,更注重DP、字串處理、任務排程和工程最佳化,很多題是 LeetCode Medium-Hard 的變體或需要較強的建模能力。
平臺是 HackerRank,整體對時間複雜度和邊界處理要求較高。下面分享 2026 年最新實戰高頻題型和我的速通體驗。

題目 1 陣列分段排序合規性統計
題目描述
給定一個包含 N 個整數的陣列 A。你可以將陣列拆分為兩個非空部分:左部分(left)和右部分(right),分別對兩部分的元素獨立排序,再將它們重新拼接在一起。
例如,給定陣列 A = [1, 3, 2, 4],有以下 3 種拆分方式:
- 左 = [1],右 = [3, 2, 4]:分別排序後拼接得到 [1, 2, 3, 4]
- 左 = [1, 3],右 = [2, 4]:分別排序後拼接得到 [1, 3, 2, 4]
- 左 = [1, 3, 2],右 = [4]:分別排序後拼接得到 [1, 2, 3, 4]
你的任務是:統計有多少種拆分方式,使得兩部分分別排序、重新拼接後,最終陣列是非遞減有序 ** 的。
對於上面的示例,答案是 2:第 1 種和第 3 種拆分方式最終得到了有序陣列。
題目 2 單元素符號翻轉最小化絕對和
題目描述
給定一個包含 N 個整數的陣列 A。你可以選擇最多一個元素,將其乘以 -1,目標是讓陣列所有元素的和儘可能接近 0(即讓和的絕對值最小)。
請編寫函式:int solution(vector &A);
該函式接收陣列 A,返回透過上述操作能得到的最小的和的絕對值。
示例
- 對於 A = [1, 3, 2, 5]:將最後一個元素乘以 -1,陣列變為 [1, 3, 2, -5],和為 1,這是能得到的最接近 0 的結果,函式返回 1。
- 對於 A = [-4, 0, -3, -3]:將 -4 乘以 -1,陣列變為 [4, 0, -3, -3],和為 -2,絕對值為 2,函式返回 2。
- 對於 A = [4, -3, 5, -7]:原陣列和為 -1,無需修改任何元素,函式返回 1。
題目 3 平衡括號序列最大效率評分
題目描述
使用者擁有一個名為「括號完美工具包(Parentheses Perfection Kit)」的工具,其中包含不同型別的括號,每個括號都有一個特定的效率評分。
目標是:透過向初始序列中新增0 個或多個工具包中未使用的括號,構造一個平衡的括號序列,並最大化該序列的總效率評分(EfficiencyScore),總評分等於所有使用的括號的效率評分之和。
平衡括號的定義
一個序列是平衡的,當且僅當:
- 左括號
(和右括號)的數量相等; - 每個左括號都有一個正確順序匹配的右括號(即不能出現迴圈匹配)。例如:
()、0(空串)、(()())是平衡的;)(、(()、())不是平衡的。
輸入說明
- 初始括號序列:字串
s - 工具包中的括號:字串
kitParentheses - 對應每個括號的效率評分:陣列
efficiencyRatings(長度均為m) - 初始序列的總效率評分初始為 0,你可以使用工具包中任意數量的未使用括號,只要最終序列是平衡的。
任務
求最終平衡序列能達到的最大可能的總效率評分。
注:題目保證一定可以透過新增 0 個或多個工具包中的括號,將初始序列變為平衡的。
示例
輸入:
s = ")("kitParentheses = ")()())"m = 6efficiencyRatings = [3, 4, 2, -4, -1, -3]
工具包中的括號及對應評分:
| 型別 | ) |
( |
( |
) |
) |
) |
|---|---|---|---|---|---|---|
| 評分 | 3 | 4 | 2 | -4 | -1 | -3 |
新增括號的最優方案:
| 新增的括號索引 | 新序列 | 總效率評分 |
|---|---|---|
| 1 | ()( |
0 + 4 = 4 |
| 0 | ()() |
4 + 3 = 7 |
| 4 | ()()) |
7 + (-1) = 6 |
最終平衡序列的最大總效率評分為 6,不存在更高的組合。
函式要求
完成函式 findMaxEfficiencyScore:
- 引數:
string s:初始括號序列string kitParentheses:工具包中的括號int efficiencyRatings[m]:每個括號對應的效率評分
- 返回:
long型別,最終平衡序列的最大可能總效率評分
約束:1 ≤ |s| < 2 * 10^5
Snowflake 2026 OA 備考建議
如果你正在準備 Snowflake 2026 OA,時間安排非常關鍵。
如果時間比較充足,建議自己系統刷題 + 多做幾次全真模擬,把節奏和手感練穩; 如果時間比較緊,或者同時在投很多公司,其實沒必要盲目刷題,而是要有策略地準備。
很多人不是不會做題,而是卡在時間不夠、debug 耗時、最後一題沒最佳化完這幾點上。
尤其是以下幾種情況: 剛開始準備、題感還不穩定;時間很趕;或者經常出現“會寫但總是過不了 test case”……
這種時候,可以考慮 Programhelp 的專業 OA 助攻服務,提供 OA 代寫(支援 HackerRank 等平臺,確保所有測試用例 100% 透過,不透過不收費),以及實時思路引導和全流程包過方案。很多同學透過他們的針對性輔導,順利拿下了 Snowflake Offer。