← 返回部落格列表 Airbnb 面試完整流程指南:HR Screen → OA → CoderPad → 4-6 輪 VO + 房源搜尋系統設計
Airbnb

Airbnb 面試完整流程指南:HR Screen → OA → CoderPad → 4-6 輪 VO + 房源搜尋系統設計

2026-05-31

Airbnb 是全球短租 / 旅行賽道的代表,面試也帶著濃重的「run + test + follow-up」工程文化:每道題寫完必須能跑、必須有測試、必須能接住 follow-up。這不是 LeetCode 提交按鈕模式——你需要在 IDE 裡完成除錯。這篇文章把 Airbnb 面試拆成 5 個階段、3 道高頻題、1 個系統設計,全部按真實流程節奏給出解法和應對模板。

五階段總覽

W0  Initial Screening: Resume → 30 min HR phone (背景 + 期望 + base)
W1  OA HackerRank: 60-90 min, 2-3 道演算法 (LC Medium 改造)
W2  Electronic Interview: CoderPad 1-2 輪,每輪 45 min
W3  Onsite VO 4-6 輪:
        ├─ Coding × 2 (45 min each)
        ├─ System Design × 1 (60 min)
        ├─ Behavioral × 1 (Cultural Fit + STAR)
        └─ Cross-functional × 1-2 (跨 PM / Eng Manager)
W4  Decision + offer call

整個流程 4-5 週。Airbnb 招聘節奏比 FAANG 慢但更注重 cultural fit——你 50% 機率會和創辦人級別(或 VP 級)面試。

階段 1 — HR Screen(30 min)

招聘 manager 看的兩點:

  1. 履歷亮點:旅行 / 電商 / 推薦系統經驗是加分項
  2. expectations alignment:base / 遠端 / 期望開始時間

回答模板:

階段 2 — OA HackerRank(60-90 min)

通常 2-3 道 LC Medium 難度,主題包括:

cutoff 大約 70% AC + 1 題全 AC。Airbnb OA 沒有 hidden monster case,但要求每題寫完跑過幾個 sample——HackerRank 的 console.log 輸出會被 reviewer 看到。

階段 3 — CoderPad 電面(1-2 輪,45 min/輪)

Airbnb 的特色:每道題都要 寫完 → 跑測試 → 答 follow-up。三步必須都做完才算完整。

高頻題 1:Zigzag Matrix Print

題面:給 M × N 矩陣,按 zigzag 順序列印(不是普通水平列印)。

1 2 3      → 1, 2, 3, 6, 5, 4, 7, 8, 9
4 5 6
7 8 9
def zigzag_print(matrix: list[list[int]]) -> list[int]:
    out = []
    for i, row in enumerate(matrix):
        if i % 2 == 0:
            out.extend(row)
        else:
            out.extend(reversed(row))
    return out

複雜度:O(M·N)。

Follow-up

  1. 「如果不讓用 reversed()?」→ 用雙指標手寫翻轉
  2. 「如果是 spiral zigzag(邊界先轉)?」→ 改成模擬方向陣列
  3. 「記憶體敏感場景如何 streaming?」→ generator 輸出

階段 4 — Onsite VO(4-6 輪)

Coding 輪 1:Listings Subset Optimization(Hard)

題面:給 N 個 listings,每個有 id / neighborhood / capacity。在指定 neighborhood 中選若干 listings,使總 capacity ≥ groupSize,優先 listings 數量最少,其次總 capacity 最少(避免浪費)。回傳 listing id 列表。

核心思路:雙維度 DP / 列舉。先按 capacity 倒序貪心選 listings 數量最少,再二維 DP 在固定數量下找 minimum capacity。

def select_listings(listings: list[dict], neighborhood: str, group_size: int) -> list[int]:
    pool = [l for l in listings if l["neighborhood"] == neighborhood]
    pool.sort(key=lambda x: -x["capacity"])

    # Step 1: 找最小 listings 數量
    cap_sum = 0
    min_count = 0
    for i, l in enumerate(pool):
        cap_sum += l["capacity"]
        if cap_sum >= group_size:
            min_count = i + 1
            break
    if cap_sum < group_size:
        return []

    # Step 2: 在 min_count 數量下找 minimum capacity
    n = len(pool)
    INF = float("inf")
    from itertools import combinations
    best_cap = INF
    best_combo = None
    for combo in combinations(range(n), min_count):
        cap = sum(pool[i]["capacity"] for i in combo)
        if cap >= group_size and cap < best_cap:
            best_cap = cap
            best_combo = combo
    return [pool[i]["id"] for i in best_combo] if best_combo else []

複雜度:組合列舉 O(C(n, k)·k),可最佳化為 DP O(n · group_size)。

Follow-up:「n = 1000 時 combinations 會爆,怎麼辦?」→ 改成 0/1 knapsack DP。

Coding 輪 2:Task Scheduling with Deadline(Medium)

題面:給一組任務,每個任務有 id / deadline / reward。每個任務佔 1 天。安排執行順序使所有任務在 deadline(含)前完成且總 reward 最大。回傳執行順序和最大 reward。

核心思路:貪心 + 優先佇列。按 deadline 升序排序,遇到 deadline 緊的任務先入堆,堆滿(size > deadline)則彈出 reward 最低的任務。

import heapq

def schedule_tasks(tasks: list[dict]) -> tuple[list[int], int]:
    tasks_sorted = sorted(tasks, key=lambda t: t["deadline"])
    heap: list[tuple[int, int]] = []   # (reward, id)
    for t in tasks_sorted:
        heapq.heappush(heap, (t["reward"], t["id"]))
        if len(heap) > t["deadline"]:
            heapq.heappop(heap)         # 彈出 reward 最小
    total = sum(r for r, _ in heap)
    order = [tid for _, tid in sorted(heap, key=lambda x: x[1])]
    return order, total

複雜度:O(n log n)。

System Design 輪:Airbnb Listing Search

題面:設計 Airbnb 房源搜尋系統,處理百萬級房源,要求低延遲、支援過濾(價格、位置、人數)。

60 min 框架

05 min  Clarify scope: QPS / 房源規模 / 過濾維度數
05 min  Data model: listing schema + index strategy
10 min  Indexing: ElasticSearch 倒排索引 + geohash
10 min  Caching: Redis 熱門 query / popular city pre-warm
10 min  Query path: API gateway → search service → ES → ranking → filter → result
10 min  Ranking: relevance + rating + price + booking history
05 min  Failure modes: ES node down, cache miss storm
05 min  Follow-up: real-time inventory / partial availability

關鍵設計點

Behavioral / Cultural Fit 輪

Airbnb 有 6 條 core values,最常考的兩條:

  1. Be a host — "你怎麼讓團隊 / 使用者感到被 welcome?"
  2. Embrace the adventure — "你最近一次走出 comfort zone 是什麼?"

每道 BQ 準備 STAR 模板,每個故事必須有一段 host / hospitality 的細節——Airbnb reviewer 會專門評估這一點。

Situation: 我接手 X 專案時,team morale 較低
Task:      作為 onboarding 負責人,我要讓新人快速 ramp up
Action:    我建立了 buddy 系統、weekly office hours、問題 doc
Result:    新人 ramp time 從 6 週降到 3 週,retention 提升 20%
Reflection: 這件事讓我意識到「being a host」不只是歡迎,而是持續 enable

Cross-functional 輪

通常和 PM / Eng Manager 聊。重點是 storytelling 和「跨職能溝通」:

應對:用 layman 語言(不要 DS 行話),先理解對方動機,再用資料 / 實驗做收口。

三條職缺線的 VO 差異

職缺線 Coding 題型 System Design
Backend SDE 資料結構 + Hard DP Listing Search / Booking
Frontend DOM tree + state mgmt UI rendering optimization
Full-stack 字串 + 圖 API gateway design

VO 輔助怎麼對接 Airbnb

Airbnb VO 的難點是「run + test + follow-up + cultural fit」四件套都要做完。VO 輔助 / VO代面 的標準節奏:

  1. 職缺線判定:JD + recruiter call 摘要,5 分鐘內判定 SDE / Frontend / Full-stack 線
  2. CoderPad 實戰訓練:每道題寫完 → 跑測試 → 答 follow-up 三步走
  3. 限時 mock:45 min × 4 / 5 onsite 節奏擬真,含 system design 60 min
  4. 現場 cue:onsite 當天 reviewer 後台推 follow-up 對接 / SD 框架
  5. Cultural fit 模板:6 條 core values 各配 1 個 STAR 故事,重點 "be a host"

FAQ

Q1: Airbnb 真的會讓創辦人面試嗎? A: 不是創辦人本人(Brian Chesky 已不親面),但 Director / VP 級別有 30% 機率。這一輪重點是 cultural fit,不是技術。

Q2: OA 沒全 AC 還能進 CoderPad 嗎? A: 1 題全 AC + 1 題 70% AC 仍可能進。但 2 題都低於 50% 幾乎必拒。

Q3: System Design 一定考 Listing Search 嗎? A: 50% 機率。其他常見題:Booking system / Pricing engine / Review aggregation。三類都要練。

Q4: Cultural Fit 輪失利會被刷嗎? A: 會。Airbnb 的 cultural fit 是一票否決項,即便技術全綠燈也可能 reject。

Q5: Airbnb NG 的 base 大概多少? A: SDE NG base 約 $170-180K + 股權 + sign-on,Total comp 第一年約 $260-300K。

寫在最後

Airbnb 面試不是「比誰刷題多」,而是「比誰能在 IDE 裡完整寫一個 production-ready 函式 + 把自己包裝成一個 host」。如果你正在準備 Airbnb 的 OA 或 VO,可以微信 Coding0201 聯繫,傳職缺 JD + 目前流程節點截圖,先做職缺線判定,再排 VO 輔助 / VO代面 節奏。


需要面試真題? 立刻聯繫微信 Coding0201取得真題


聯絡方式