Question Study

Airbnb 面试题专题

本地面经库有 42 条来源 URL 去重后的记录,其中 42 条有正文;目前整理出 38 道代表练习题,其中 38 道已完成独立深文。题目清单仍在逐帖核对和补充。

Reading Guide

如何使用这份题目清单

题目根据面经方向重新表述,其中可能包含站内攻略建议的训练题;它们不是公司的官方题库,也不保证下一场面试重复出现。

先分岗位

Airbnb 的不同岗位和团队可能考不同内容。先核对 JD 与面试邀请,再选对应题型。

合并同题变体

相同核心考点只保留一条,后续的附加约束放在原题里练,避免把同一道题当成多道题刷。

练习顺序

先口述输入、输出和边界,再写核心方案;最后解释复杂度、失败路径和面试官可能追加的约束。

Deduplicated Question Map

按考点去重的代表题

同一题的追加条件合并在一条里。题目清单用于确定训练范围;具体流程和准备优先级见公司攻略。

SWE Coding / Split Stay · 01

给每套房源的可住日期与请求区间,找出两套不同房源可按某个分割点连续覆盖整段行程的有序组合

给每套房源的可住日期与请求区间,找出两套不同房源可按某个分割点连续覆盖整段行程的有序组合;不能只用日期集合并集判断。

查看上方解题路线 ↑

阅读这道题的独立深文 →
System Design / Distributed KV · 02

设计高可用、最终一致的分布式 KV

设计高可用、最终一致的分布式 KV:get/put/delete 与带分页的 get(key*) 前缀查询,说明副本冲突、删除标记和分页快照。

解题切入:最终一致 KV 必须说明同键冲突解析、删除 tombstone 和读到旧值的边界;get(key*) 分页在写入变化时要定义顺序与 cursor 快照。

阅读这道题的独立深文 →
System Design / Notifications · 03

设计事件触发与批量通知系统

设计事件触发与批量通知系统:预订确认邮件、潜在房东营销、入住当天短信门锁码,覆盖多渠道、偏好、调度与重复发送。

解题切入:通知系统将事件触发和批量活动共用投递管线,但发送时间、偏好/退订和优先级不同;门锁码应只经受控渠道在入住日发送。

阅读这道题的独立深文 →
SWE Coding / Iterator · 04

为二维整数列表实现 hasNext、next、remove

为二维整数列表实现 hasNext、next、remove:跳过空行,remove 原地删除最近返回的元素,不能导致下一次 next 跳过。

解题切入:二维列表 Iterator 的 hasNext 不得消耗元素,remove 只能删最近一次 next 的位置;同一行删除后应修正游标列,空行和重复调用要测。

阅读这道题的独立深文 →
SWE OA / State Machine · 05

实现员工进出打卡工时、工时 Top N、下一次进门生效的晋升、按班次历史薪酬计算工资,以及整班落入奖励期双倍工资

实现员工进出打卡工时、工时 Top N、下一次进门生效的晋升、按班次历史薪酬计算工资,以及整班落入奖励期双倍工资。

解题切入:Working Hours Register 以进/出组成班次,晋升只在下一次进入时生效,已完成班次保留当时薪酬;双倍期只适用完整落入区间的班次。

阅读这道题的独立深文 →
SWE OA / Banking · 06

分层实现账户创建、存款/转账、按转出金额 Top Spenders、定时支付及取消、账户合并与历史余额

分层实现账户创建、存款/转账、按转出金额 Top Spenders、定时支付及取消、账户合并与历史余额;部分面经另有离线转账变体。

解题切入:Airbnb Banking OA 的 Top Spenders 按成功转出总额累计;定时支付在每次普通操作前按到期时间推进,合并账户仍要保留历史余额可查询。

阅读这道题的独立深文 →
SWE OOD / Retryer · 07

实现可扩展 Retryer

实现可扩展 Retryer:默认重试策略、可配置停止条件/退避和错误分类,明确幂等与取消;原帖未给精确接口。

解题切入:Retryer 需把操作、重试判定、退避、最大次数和取消拆成可注入策略;非幂等写操作不能无条件重试,失败与最终异常要定义。

阅读这道题的独立深文 →
SWE OA / Cloud Storage · 08

四层内存云存储

四层内存云存储:文件增删查、前缀 Top N、用户容量与合并、用户备份/恢复及同名文件冲突。

解题切入:Cloud Storage 的文件名全局唯一,用户有各自容量和已用空间;merge 要一起迁移 owner/容量/使用量,restore 要先删本人现有文件再从备份快照恢复并跳过他人占用同名文件。

阅读这道题的独立深文 →
SWE OA / Task Management · 09

任务 CRUD、名称子串搜索排序、用户配额与限时指派、完成/过期历史

任务 CRUD、名称子串搜索排序、用户配额与限时指派、完成/过期历史;指派过期不能直接删除,否则 Level 4 无法追溯。

解题切入:Task Management 指派记录需追加保留:active 用 start≤t<finish 且未完成过滤,overdue 用 finish≤t 且未完成过滤;同任务同用户多次指派按最早 start 完成一条。

阅读这道题的独立深文 →
SWE OA / Recipe Registry · 10

Recipe 管理

Recipe 管理:忽略大小写的唯一名称、食材检索与排序、用户编辑;原帖只见 Level 1–3,Level 4 题意不可见。

解题切入:Recipe Registry 要把 ID 映射与 casefold 名称索引一起原子更新;食材检索忽略大小写,但输出保留原顺序,搜索结果按食材数再按 ID 排。

阅读这道题的独立深文 →
Coding / Refund · 11

按支付方式优先级 CREDIT、CREDIT_CARD、PAYPAL,再按较新支付优先,为退款金额逐笔分配

按支付方式优先级 CREDIT、CREDIT_CARD、PAYPAL,再按较新支付优先,为退款金额逐笔分配;先扣已退金额并核原帖示例冲突。

解题切入:Refund 先扣支付已有退款后的可退余额,再按方式优先级和同方式较新支付分配;1165116 的例 1 原输出与 50 退款不符,例 2 也有相互矛盾的写法。

阅读这道题的独立深文 →
Coding / Graph · 12

滑雪路线从固定 start 到多个 end,每条边扣 travel cost、到达点加 reward,求最大净分

滑雪路线从固定 start 到多个 end,每条边扣 travel cost、到达点加 reward,求最大净分;若图有正收益环须先明确规则。

解题切入:滑雪最大净分按 travel 边 cost 与到达点 reward 建边权;若路线可无限绕正收益环,最大值无界,必须澄清是 DAG 还是只允许简单路径。

阅读这道题的独立深文 →
Coding / Set Cover · 13

菜单可包含单品和套餐,给最多三种想吃的 food,找覆盖所有需求的最低价格及所选菜单项

菜单可包含单品和套餐,给最多三种想吃的 food,找覆盖所有需求的最低价格及所选菜单项;先确认可否重复购买。

解题切入:最多三类想吃的 food 可用小位掩码做菜单组合 DP;同菜单项能否重复买、是否允许多余食物及返回组合顺序需先确认。

阅读这道题的独立深文 →
Coding / Strings · 14

在评论中按词典给地点/品牌打标,输出 [标签]{原文} 并保留原文大小写

在评论中按词典给地点/品牌打标,输出 [标签]{原文} 并保留原文大小写;重叠词和词边界是需确认的训练规则。

解题切入:评论打标保留原文 span,只改外层 [type]{text};San Francisco 大小写与多个词匹配需要定义,不能直接全局字符串替换。

阅读这道题的独立深文 →
Coding / Grid · 15

棋盘每格有区域类型和 crown 数,同类型四连通区域的得分为格数乘 crown 总数,求全图总分

棋盘每格有区域类型和 crown 数,同类型四连通区域的得分为格数乘 crown 总数,求全图总分。

解题切入:棋盘区域按同类型四连通做 DFS/BFS,一次区域计算 size×crownSum;只看格子数或把同类型不相邻区域合并都会错。

阅读这道题的独立深文 →
Coding / Digits · 16

给数字列表排列成最小的规范数字字符串

给数字列表排列成最小的规范数字字符串;追问找同一多重数字集合能构成且严格大于 lower bound 的最小数。

解题切入:最小数字排列要把前导零移到首个非零之后;严格大于 lower bound 的最小排列可按有序多重集和前缀约束回溯,原帖示例需核。

阅读这道题的独立深文 →
Coding / Linked List · 17

两条单链表可能各自带环,判断它们是否共享同一个节点

两条单链表可能各自带环,判断它们是否共享同一个节点;按无环、单环、双环且入口相同/不同分类。

解题切入:可能带环的两链表交点必须按节点身份判断;只一条有环不可能相交,两条环入口不同也可能共享同一环。

阅读这道题的独立深文 →
Coding / Directed Graph · 18

房源有坐标和连锁半径,预订一套会递归触发半径内其他房源

房源有坐标和连锁半径,预订一套会递归触发半径内其他房源;选择一个起点使最终触发房源数最多。

解题切入:连锁房源半径形成有向图:i 能触发 j 不代表 j 能触发 i;逐起点 DFS/BFS 计可达数,距离用平方避免浮点误差。

阅读这道题的独立深文 →
System Design / Analytics · 19

房东选日期区间查看超过 100 套房源的已订晚数与平均价格,页面变慢时从数据模型、预聚合和查询路径优化

房东选日期区间查看超过 100 套房源的已订晚数与平均价格,页面变慢时从数据模型、预聚合和查询路径优化。

解题切入:房东信息页先固定 booked nights 和 average price 的统计口径,再用 listing×date 的可重建预聚合与索引缩小扫描;超过 100 房源时避免 N+1 查询。

阅读这道题的独立深文 →
System Design / Internal Tools · 20

Email/API/表单汇入 Ticket,按语言和地点等规则分派给 agent 并支持 claim

Email/API/表单汇入 Ticket,按语言和地点等规则分派给 agent 并支持 claim;经理查询平均首响与关闭时间。

解题切入:Ticket System 的多入口先标准化请求和幂等,agent claim 用条件更新防双领;首响/关闭时间从不可逆事件时间线计算并定义工作时段口径。

阅读这道题的独立深文 →
System Design / Booking · 21

设计房源预订系统

设计房源预订系统:可用性查询、价格快照、并发防重复预订、支付未知结果与按稳定键分页。

解题切入:Booking System 的可用性读只是候选,最终确认必须在同一 listing/date 的库存写边界防双订;分页需稳定排序键与游标。

阅读这道题的独立深文 →
System Design / Group Chat · 22

设计群聊为主的聊天系统

设计群聊为主的聊天系统:成员关系、消息顺序、多 WebSocket 路由与容灾,并澄清 Top N 群聊的指标口径。

解题切入:Group Chat 要把消息/成员/会话状态分开,多台 WebSocket 的路由与离线恢复要有消息 ID;Top N 指活跃度还是未读数须先确认。

阅读这道题的独立深文 →
Coding / Cache Dependencies · 23

缓存项值变化后沿依赖/被依赖关系传播更新

缓存项值变化后沿依赖/被依赖关系传播更新;先定边方向、环和重算顺序,再用图遍历处理受影响项。

解题切入:依赖缓存更新要先区分 entry→dependency 与 dependency→dependent;值变更后通常传播给受影响的 dependent,并处理环或声明 DAG 假设。

阅读这道题的独立深文 →
System Design / Search · 24

给字符串建立全文索引

给字符串建立全文索引:分词、倒排表、增量更新、删除、分片与查询排名;源帖未指定语言或相关性模型。

解题切入:全文索引从文档/字段的 token→posting list 入手,更新/删除与增量索引合并要保持版本;分片与查询排名取决于语料和 SLA。

阅读这道题的独立深文 →
System Design / Analytics · 25

设计交互式数据分析系统

设计交互式数据分析系统:比较批处理与流式聚合,处理 Kafka→Flink 接入、状态恢复和低延迟查询。

解题切入:交互式分析先定查询延迟和新鲜度,再决定流式状态聚合与批量回填;Kafka offset 与 Flink checkpoint/下游写入需一起恢复。

阅读这道题的独立深文 →
System Design / Search Data · 26

设计查询用户搜索与下单信息的系统,支持时间和地理位置过滤

设计查询用户搜索与下单信息的系统,支持时间和地理位置过滤;定义事件关联、时空索引及数据延迟。

解题切入:时间+地理查询要把 search/order 事件的用户、时间、位置口径固定,再选时间分区与地理索引,避免按全表扫后应用层过滤。

阅读这道题的独立深文 →
Coding / Scheduling · 27

每个任务有 deadline 与 profit,若每任务占一个时隙,安排可完成任务使总利润最大

每个任务有 deadline 与 profit,若每任务占一个时隙,安排可完成任务使总利润最大;从最晚空位贪心到并查集优化。

解题切入:deadline 最大收益若任务均为单位时长,按 profit 降序安排到不晚于 deadline 的最晚空位可交换证明;时长不等时不能直接套该贪心。

阅读这道题的独立深文 →
MLE System Design · 28

设计房源推荐系统

设计房源推荐系统:定义曝光/预订目标、候选召回与排序、冷启动、公平性、实验,并解释下游评估输出如何影响在线指标。

解题切入:推荐系统设计先定义 guest/host 双侧目标和曝光约束,再从候选召回、排序到在线实验;下游评估输出变化须核版本/口径后才解释线上指标。

阅读这道题的独立深文 →
Geo System Design · 29

解释 geohash 如何把经纬度编码并服务附近房源检索

解释 geohash 如何把经纬度编码并服务附近房源检索:精度、邻居格、边界二次过滤及热点。

解题切入:Geohash 是空间候选召回的编码,不等于精确距离判定;半径查询要覆盖相邻网格并再按经纬度/地球距离过滤。

阅读这道题的独立深文 →
System Design / Profile · 30

用户修改资料后数据怎样流转

用户修改资料后数据怎样流转:主库写入、事件发布、搜索/缓存/推荐读模型更新、失败补偿与版本顺序。

解题切入:资料更新数据流以版本化主写为真相,经 outbox/事件流更新缓存、搜索和推荐读模型;乱序事件不可覆盖较新版本。

阅读这道题的独立深文 →
Behavioral / Cross-team Delivery · 31

讲一次其他团队没有按 ETA 交付,导致项目延期或范围缩小的经历

讲一次其他团队没有按 ETA 交付,导致项目延期或范围缩小的经历:怎样找根因、重排任务、准备备用方案并管理预期?

解题切入:跨团队 ETA 落空时,按原计划、依赖、根因、选项与新承诺讲清决策;量化延期与缩范围对用户的影响,给出备用路径。

阅读这道题的独立深文 →
Behavioral / Project Scope · 32

选一个自己主导的项目深挖

选一个自己主导的项目深挖:个人负责的决策、跨团队影响、技术取舍和结果;如何证明 Senior/Staff 所要求的范围?

解题切入:项目深挖以自己实际拥有的决策和跨团队影响为轴,明确规模、取舍、证据和失败复盘;不能把团队总体成果冒充个人贡献。

阅读这道题的独立深文 →
Behavioral / Why Airbnb · 33

为什么选择 Airbnb?结合真实产品使用/旅行体验、岗位职责与个人项目,说明吸引点和可能遇到的挑战

为什么选择 Airbnb?结合真实产品使用/旅行体验、岗位职责与个人项目,说明吸引点和可能遇到的挑战。

解题切入:Why Airbnb 应使用真实经历和经核实的岗位任务,旅行体验可作具体例子;不推断未公开团队政策或产品路线。

阅读这道题的独立深文 →
Behavioral / Global Collaboration · 34

如何与不同时区、文化背景的团队沟通设计到落地,处理异步决策、误解与紧急情况?

如何与不同时区、文化背景的团队沟通设计到落地,处理异步决策、误解与紧急情况?

解题切入:跨时区协作把决策文档、异步意见截止、负责人、冲突升级和紧急同步分开说明,并复盘误解如何被发现。

阅读这道题的独立深文 →
Behavioral / Mentorship · 35

早期哪位 senior 帮助了你?他提供什么具体建议,紧急情况如何寻求帮助,哪些判断能力因此改变?

早期哪位 senior 帮助了你?他提供什么具体建议,紧急情况如何寻求帮助,哪些判断能力因此改变?

解题切入:Mentorship 故事要说清 senior 的具体建议如何改变自己的判断,紧急情况下何时、带着哪些证据求助。

阅读这道题的独立深文 →
Behavioral / Risk · 36

谈一次工作或生活中的冒险/风险决策

谈一次工作或生活中的冒险/风险决策:当时有哪些未知、备选和止损条件,结果如何?

解题切入:冒险/风险决策用当时可用的信息、可逆性、止损条件和结果来回答;不要事后把不确定决策包装成必然正确。

阅读这道题的独立深文 →
SF&A / Case Presentation · 37

给 Excel 原始数据后准备 4–6 页洞察与建议,并在 HM 面试展示和回答追问

给 Excel 原始数据后准备 4–6 页洞察与建议,并在 HM 面试展示和回答追问;原始表及 mini case 题面未公开。

解题切入:SF&A case 原表不可见,准备框架须区分事实、推断与建议;验证分母、分组、时间窗、敏感性,并用 4–6 页回答决策问题。

阅读这道题的独立深文 →
Behavioral / Reflection · 38

谈一件现在会做得更好的事

谈一件现在会做得更好的事:当时的预期与实际有什么落差,如何发现、沟通并改变后续做法?

解题切入:改进经历要分当时的预期、实际偏差、发现与沟通、改动和验证;避免把所有结果归咎于他人。

阅读这道题的独立深文 →

Evidence Review

已发现但暂未写成深文的题目信号

这些帖子只给题名、部分约束或外链;先标注证据缺口,再决定是否补成独立文章。

地形定点倒水

有高度数组、倒水 8 单位和 ASCII 目标,但流向、左右优先及并列规则缺失;不能确定唯一模拟算法。

Terrain + Dump Water、倒水追记

Max Bookings 外链

本地帖只有外站链接和‘可抽象成图’的提示,未保留题面、图的点边定义和优化目标。

Max Bookings 线索

OA 后续层与示例/接口矛盾

Recipe Level 4、Cloud Storage Top N 输出格式和 Banking 离线转账/删除接口不可见;Refund 示例有金额与部分退款冲突,Task Management 返回值冲突,相关文章已限定可证部分。

Recipe、Cloud Storage、Banking、Refund、Task Management

代码审查 PR 与 SF&A 原 case/mini case

代码审查只透露有 4 个 PR、质量与数量均被评价,没有任何 PR 代码;SF&A 只给 Excel 作业与展示形式,原表、panel mini case 和具体 BQ 未公开。

代码审查、SF&A Case

积分墙后隐藏题面

正文仅是登录/积分提示,无可还原的题意。

Airbnb 电面

Next Step

把题目放回面试流程

题目只是准备的一部分;按公司攻略核对轮次、岗位差异和常见失分点。

查看 Airbnb 面试全攻略 →
✓已复制微信号!