← 返回部落格列表 Snowflake OA 多批次面經聚合:HackerRank 題型分布 × 批次差異 × 備考策略
Snowflake

Snowflake OA 多批次面經聚合:HackerRank 題型分布 × 批次差異 × 備考策略

2026-06-02

Snowflake 的 OA 是不少同學投遞雲端資料倉儲職位時的「硬門檻」。難度本身不極端,但不同批次抽到的題型差異很大——有人遇到三道純 LeetCode Medium,有人遇到一道偏向資料結構設計的 hard,還有人遇到 SQL 風格的 query 題。如果只看一篇面經就上場,很容易踩到當批次的「陷阱清單」。

這篇文章不再聚焦單一批次或單一題,而是把站內多篇 Snowflake OA 面經按時間批次重新聚合,畫出「題型分布矩陣」,逐批次給出代表題與 Python 解法。配套補一份批次差異速查表,讓你做完站內多篇 Snowflake 文章後,知道這一批可能踩到哪幾個坑。

招聘流程:Snowflake OA 在整條鏈路裡的位置

階段 平台 時長 通過線
Online Assessment HackerRank 90-120 分鐘 題數 ≥ 2 全 AC,或 1 全 AC + 1 部分
Recruiter Screen Zoom 30 分鐘 行為 + 履歷深挖
Technical Phone Zoom + CoderPad 60 分鐘 1 道 medium / hard 演算法
Virtual Onsite 4-5 輪 1 個工作日 演算法 / 系統設計 / SQL / 行為

節奏說明:OA → Recruiter → Phone → Onsite 整體 4-6 週;Snowflake 對 OA 通過線相對嚴格,接近全 AC 才能進入下一輪

題型分布矩陣:四個核心批次

下表把站內已記錄的 Snowflake OA 真題按照「批次時間窗」分成四組,標記了核心題型。

批次 時間窗 題數 主題型 難度
A 早期批次 3 題 Cake Allocation / Min Distance / Word Search Medium
B 中期批次 2 題 Unequal Elements + String Search Medium-Hard
C 近期批次 3 題 Longest Consecutive + Group Anagrams + Rotate Image Medium
D 當前批次 2-3 題 Vowel DP + Interval Scheduling Medium-Hard

站內已有 batch A、B、C、D 各自的深度解法長文,本篇負責「導航 + 批次差異」。

批次 A:早期 3 題型(Cake / Min Distance / Word Search)

代表題:Cake Allocation

N 塊蛋糕排成一行,每塊有重量 w[i]。給 K 個人分蛋糕,每人拿連續一段。問最大化「最小那個人拿到的總重量」。

思路:經典二分答案。

def cake_allocation(w, K):
    def can_split(limit):
        cnt, cur = 1, 0
        for x in w:
            if cur + x > limit:
                cnt += 1
                cur = x
            else:
                cur += x
        return cnt <= K

    lo, hi = max(w), sum(w)
    while lo < hi:
        mid = (lo + hi) // 2
        if can_split(mid):
            hi = mid
        else:
            lo = mid + 1
    return lo

時間複雜度:O(N log(sum w))。 陷阱lo 必須取 max(w),否則單塊超過 limit 時無解。

批次 B:Unequal Elements + String Search

代表題:Unequal Elements

給陣列 a[],求最長子陣列使得相鄰元素不相等。

思路:滑動視窗 + 上一次重複位置。

def longest_unequal(a):
    best = left = 0
    for i in range(1, len(a)):
        if a[i] == a[i-1]:
            left = i
        best = max(best, i - left + 1)
    return best if a else 0

時間複雜度:O(N)。 陷阱:批次 B 的另一題 String Search 用二分答案,90 分鐘兩題非常吃節奏,需要預留 25 分鐘做第二題。

批次 C:Longest Consecutive + Group Anagrams + Rotate Image

代表題:Rotate Image (in-place)

N×N 矩陣順時針旋轉 90 度,要求 in-place。

思路:先轉置,再左右翻轉。

def rotate_image(M):
    n = len(M)
    for i in range(n):
        for j in range(i+1, n):
            M[i][j], M[j][i] = M[j][i], M[i][j]
    for row in M:
        row.reverse()

時間複雜度:O(N^2),原地。 陷阱:批次 C 是三題型,必須留時間給 Group Anagrams 的字元計數 key——用 tuple(sorted(s)) 在大資料量下比 26-tuple 慢。

批次 D:Vowel DP + Interval Scheduling

代表題:Interval Scheduling 加權版

給 N 個區間,每個有權重 w[i]。選若干不相交區間,最大化權重和。

思路:按右端點排序 + DP,每個區間用二分找上一個不衝突的位置。

from bisect import bisect_right

def weighted_interval(intervals):
    intervals.sort(key=lambda x: x[1])
    ends = [x[1] for x in intervals]
    n = len(intervals)
    dp = [0] * (n + 1)
    for i in range(1, n + 1):
        s, e, w = intervals[i-1]
        j = bisect_right(ends, s) - 1
        dp[i] = max(dp[i-1], dp[j+1] + w if j >= -1 else w)
    return dp[n]

時間複雜度:O(N log N)。 陷阱:批次 D 的另一題 Vowel DP 看上去簡單,但輸入字串可能含非 ASCII,要先做正規化。

批次差異速查表:抽到哪一批,先警惕這些坑

批次 關鍵陷阱 建議時間分配
A Word Search 容易寫出 O(M·N·4^L) 超時 30 / 30 / 30
B String Search 二分答案邊界 35 / 55
C Group Anagrams key 選擇 25 / 30 / 35
D Vowel DP 非 ASCII 正規化 40 / 50

備考策略:三階段兩週節奏

階段 內容
1 週 把站內 4 篇 Snowflake 批次文一遍刷完,標記自己寫不出來的 follow-up
1 週 LeetCode Top 100 medium 挑出滑動視窗 / 二分答案 / DP 各 10 道
模考 在 HackerRank 公開題集做 2 套 90 分鐘 mock,模擬批次 B/D 的雙題節奏

FAQ

Q1:Snowflake OA 通過線是不是必須全 AC? 不是絕對,但兩題中至少一題 100% AC + 另一題接近 AC 是絕大多數通過案例的下限。部分批次會用 corner case 數量打分,AC 率 80% 也有機會進下一輪。

Q2:Snowflake OA 的題和正式 onsite 的題難度差距大嗎? Onsite 偏向 LeetCode Hard 和系統設計,難度比 OA 高 1 個等級。OA 通過 ≠ Onsite 通過,Phone Screen 是真正的過濾環節

Q3:HackerRank 平台 Python 提交有什麼常見坑? 預設 Python 3.10,functools.cache 可用;遞迴深度預設 1000,複雜 DP 建議手寫堆疊或加 sys.setrecursionlimit(10**6)

Q4:抽到哪一批是隨機的嗎? 近似隨機,但同一招聘窗口內的同學經常拿到同一批次。可以在投遞後向 referer / 學長學姐確認當週批次。

Q5:如果 OA 表現一般,還能進下一輪嗎? 可以,前提是 referral 強 / 履歷亮點突出。但建議把目標設成「兩題接近全 AC」,避免靠不可控因素翻盤。


正在準備 Snowflake OA?

如果你想知道當前批次具體在抽哪幾道題、或希望面試日有真人 OA代面 / VO代面 全程陪跑,可以聊聊看完整的 OA輔助 / VO輔助 方案。


聯絡方式

需要面試真題與客製備戰計畫?立刻聯絡微信 Coding0201獲取真題

Email: [email protected] Telegram: @OAVOProxy