← 返回博客列表 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")
    # dp[j][c] = 选 j 个 listings 总 capacity = c 的最小 capacity 路径
    # 简化:枚举所有 C(n, min_count) 组合
    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获取真题


联系方式