Question Study

Databricks 面试题专题

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

Reading Guide

如何使用这份题目清单

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

先分岗位

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

合并同题变体

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

练习顺序

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

Deduplicated Question Map

按考点去重的代表题

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

Coding · 01

RLE 只压至少 8 个连续重复值、Bit-Packing 恰好压 8 值块且不能跳过或乱序

RLE 只压至少 8 个连续重复值、Bit-Packing 恰好压 8 值块且不能跳过或乱序;编码/解码前须确认尾块与二进制格式。

查看上方解题路线 ↑

阅读这道题的独立深文 →
Coding · 02

CIDR Firewall 的有序 ALLOW/DENY 规则如何判断单 IP 首条匹配,并判断整个 CIDR block 是否全部允许?

CIDR Firewall 的有序 ALLOW/DENY 规则如何判断单 IP 首条匹配,并判断整个 CIDR block 是否全部允许?

解题切入:CIDR 单 IP 查询按有序规则取首个匹配;整块全覆盖不能只查区间端点,可按规则交集边界分段判断,并区分 deny-veto 变体。

阅读这道题的独立深文 →
Coding · 03

内存 KV 的 put/get 如何统计过去五分钟 averagePut/averageGet?环形秒桶、启动期分母与可变窗口分别怎么处理?

内存 KV 的 put/get 如何统计过去五分钟 averagePut/averageGet?环形秒桶、启动期分母与可变窗口分别怎么处理?

解题切入:KV Load 的 put/get 与统计分离;秒桶保存绝对时间防环回卷。固定 300 秒 QPS 与启动期 uptime 分母是两种口径,需先确认。

阅读这道题的独立深文 →
Algorithm · 04

Optimal Commute 网格只能沿单一交通模式走,如何一次 BFS 找最快模式并以费用破同时间平局?

Optimal Commute 网格只能沿单一交通模式走,如何一次 BFS 找最快模式并以费用破同时间平局?

解题切入:Optimal Commute 每格有唯一模式,可从 S 一次 BFS 遍历全部模式连通块,按步数乘时间、再以费用破平局;转弯/换乘要扩状态。

阅读这道题的独立深文 →
Algorithm · 05

Fibonacci Tree 左右子树阶数为 k−2/k−1,节点按 preorder 编号

Fibonacci Tree 左右子树阶数为 k−2/k−1,节点按 preorder 编号;不建树如何 O(k) 找两个 ID 之间的路径?

解题切入:Fibonacci Tree 先预计算 F(k) 节点数,再按 preorder 连续区间定位目标 ID;两条根路径取最长公共前缀作为 LCA,拼接仅 O(k)。

阅读这道题的独立深文 →
Coding / OOD · 06

m×n 的 TicTacToe 任意方向连续 k 子怎样在每次 move 后检查?自动轮换、随机 AI 和平局如何扩展?

m×n 的 TicTacToe 任意方向连续 k 子怎样在每次 move 后检查?自动轮换、随机 AI 和平局如何扩展?

解题切入:m×n TicTacToe 的连续 k 胜利只需从新落子沿四轴双向检查 O(k),行列总计数会误判不相邻棋子;随机 AI 要在满盘无胜时停止。

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

SnapshotSet 的迭代器如何 O(1) 创建并保留创建时插入顺序,后续 remove/re-add 不影响旧迭代器?

SnapshotSet 的迭代器如何 O(1) 创建并保留创建时插入顺序,后续 remove/re-add 不影响旧迭代器?

解题切入:SnapshotSet 用成功 add 事件的版本化节点保存插入序,迭代器捕获版本和尾节点实现 O(1) 创建;若 N 指不同值而非插入事件,历史节点空间界需另证。

阅读这道题的独立深文 →
Systems Programming · 08

单机千线程共享 DataWriter.push(≤1KB) 时,如何保证完整记录和返回前持久化,再以 group commit 提升吞吐?

单机千线程共享 DataWriter.push(≤1KB) 时,如何保证完整记录和返回前持久化,再以 group commit 提升吞吐?

解题切入:DataWriter 正确性基线用锁保护 record framing、完整写循环与 fsync 后 ack;group commit 可批量 fsync,但每个 push 必须等本批 durable 才返回,失败批次统一报错。

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

多人协作 Playlist 的 add/remove/reorder 如何建模重复歌曲、原子重排与版本化同步事件?

多人协作 Playlist 的 add/remove/reorder 如何建模重复歌曲、原子重排与版本化同步事件?

解题切入:Playlist 用独立 entry ID 表示重复歌曲;链式邻接改动要在事务内原子提交并检查列表版本,浏览器实时同步用 WebSocket/SSE,webhook 适合服务间通知。

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

Chat App 删除消息/会话与并发发送如何定义先后,缓存 miss、分区和实时推送怎样避免旧状态复活?

Chat App 删除消息/会话与并发发送如何定义先后,缓存 miss、分区和实时推送怎样避免旧状态复活?

解题切入:Chat send 与 delete thread 竞争同一状态/epoch 事务,先提交者决定结果;cache miss 回填需核版本,删除事件与离线补拉使用会话序号。

阅读这道题的独立深文 →
Architecture · 11

Book Seller Platform 怎样设计目录/搜索、批量价格、库存预留、订单支付与重复回调?GET/POST 如何选择?

Book Seller Platform 怎样设计目录/搜索、批量价格、库存预留、订单支付与重复回调?GET/POST 如何选择?

解题切入:Book Seller 的搜索索引可最终一致,checkout 要重新核权威价格/库存;库存预留和订单同事务,支付回调幂等,POST 建订单、批量读价格另说明语义。

阅读这道题的独立深文 →
Architecture · 12

Game Shop 的 add credit、purchase item、refund 如何设计 Pending 状态、服务器计算价格、幂等请求和宕机恢复?

Game Shop 的 add credit、purchase item、refund 如何设计 Pending 状态、服务器计算价格、幂等请求和宕机恢复?

解题切入:Game Shop 不信客户端 total value,服务器按 quantity 和价版本计算;余额 ledger、purchase PENDING 与 outbox 同事务,幂等键处理提交后未回包重试。

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

VM 分配服务如何从 free IPv4 池原子预占地址、调用外部 attach API,并处理超时未知与回收?

VM 分配服务如何从 free IPv4 池原子预占地址、调用外部 attach API,并处理超时未知与回收?

解题切入:VM IPv4 分配先事务内条件占用 FREE 地址,再调用外部 attach;超时未知时保留 RESERVED 并对账,不能立即把地址放回池。

阅读这道题的独立深文 →
Architecture · 14

文件所有权 files table 如何支持幂等删除与异步 GC,避免旧回收任务误删新对象?

文件所有权 files table 如何支持幂等删除与异步 GC,避免旧回收任务误删新对象?

解题切入:文件元数据以 ACTIVE→DELETING 墓碑让读立即不可见,GC 任务按 file_id/generation 幂等删对象;重复 DELETE 返回稳定结果,旧任务不能删新对象。

阅读这道题的独立深文 →
Algorithm · 15

已排序不相交区间按索引删除后,如何支持频繁删除和动态插入且始终不重叠?数组与有序树的成本是什么?

已排序不相交区间按索引删除后,如何支持频繁删除和动态插入且始终不重叠?数组与有序树的成本是什么?

解题切入:不相交区间动态插入只需在有序结构找前驱/后继并核两侧边界;Python list 二分定位快但搬移仍 O(N),按索引 O(log N) 删除需秩统计树。

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

给固定横向 offset 的方块和有障碍棋盘,如何找到首次碰撞前的下落步数并输出落地后的棋盘?

给固定横向 offset 的方块和有障碍棋盘,如何找到首次碰撞前的下落步数并输出落地后的棋盘?

解题切入:方块下落先抽取填充格坐标,从出生高度逐行试探下一步,第一次碰撞即停;不能跳到更深的空洞,落地输出要复制棋盘并明确 offset/顶部失败口径。

阅读这道题的独立深文 →
Concurrency · 17

为什么普通 HashMap 并发读写不安全?ConcurrentHashMap 的全局锁、分段锁与 resize/复合操作分别如何处理?

为什么普通 HashMap 并发读写不安全?ConcurrentHashMap 的全局锁、分段锁与 resize/复合操作分别如何处理?

解题切入:ConcurrentHashMap 的锁需保护桶结构和 resize 发布;单操作线程安全不代表 get 后 put 的复合操作原子,分段锁改善不同 key 并发但热键仍串行。

阅读这道题的独立深文 →
Data Systems · 18

OLTP 的短事务与 OLAP 的大范围分析在存储、索引、查询和 CDC 新鲜度上如何取舍?

OLTP 的短事务与 OLAP 的大范围分析在存储、索引、查询和 CDC 新鲜度上如何取舍?

解题切入:OLTP 优先短事务/点更新与约束,OLAP 优先大范围扫描/聚合;CDC 同步有数据水位与更正/删除语义,不能把分析副本当即时交易真相。

阅读这道题的独立深文 →
Data Systems · 19

Data Skew 如何用分区与任务指标定位热 key,并针对聚合或 join 分别选择预聚合、广播或 salting?

Data Skew 如何用分区与任务指标定位热 key,并针对聚合或 join 分别选择预聚合、广播或 salting?

解题切入:Data Skew 先看分区大小、shuffle、spill 和尾部 task,再按聚合/Join 分别用局部预聚合、广播或热键 salting;复制小侧时核结果不重不漏。

阅读这道题的独立深文 →
Low-Level Design · 20

单机多线程 Cache 如何从内存 map 扩展到 WAL 持久化、分片锁和 LRU 驱逐,同时守住提交顺序?

单机多线程 Cache 如何从内存 map 扩展到 WAL 持久化、分片锁和 LRU 驱逐,同时守住提交顺序?

解题切入:单机 Cache 先定义是可重建缓存还是权威状态;后者需 WAL durable 与回放。map+LRU 受同一锁保护,再按 key 分片降竞争并固定跨分片锁顺序。

阅读这道题的独立深文 →
Behavioral · 21

Why Databricks / Why this role 如何用真实项目经历对应岗位职责,而不是只说公司名气?

Why Databricks / Why this role 如何用真实项目经历对应岗位职责,而不是只说公司名气?

解题切入:Why Databricks 先从真实 JD 提炼具体岗位问题,再用本人项目证据说明迁移能力与下一步目标;不虚构团队技术栈或个人业绩。

阅读这道题的独立深文 →
Behavioral · 22

最自豪项目如何证明本人技术决策、测量过的 impact 和跨团队协作?

最自豪项目如何证明本人技术决策、测量过的 impact 和跨团队协作?

解题切入:最自豪项目按目标、本人决策、替代方案、实施、测量结果和复盘组成证据链,跨组影响要有冲突/决策结果而非空泛沟通。

阅读这道题的独立深文 →
Behavioral · 23

与同事在技术方案上意见不同时,如何建立共同决策标准、验证取舍并执行最终方案?

与同事在技术方案上意见不同时,如何建立共同决策标准、验证取舍并执行最终方案?

解题切入:技术分歧先确定共同目标和可比较指标,必要时做可逆实验;决策后执行并复盘,不能只描述争吵或以职位压过同事。

阅读这道题的独立深文 →
Behavioral · 24

收到不认同的反馈时,如何核对证据、回应并说明后续行为改变?

收到不认同的反馈时,如何核对证据、回应并说明后续行为改变?

解题切入:不认同反馈时先复述具体内容、取证区分事实/价值差异,再约定可观察行为改变;不能把反馈处理和技术方案争执完全混同。

阅读这道题的独立深文 →
Behavioral · 25

遇到目标和边界都模糊的任务,如何澄清关键未知量、做小实验并分段交付?

遇到目标和边界都模糊的任务,如何澄清关键未知量、做小实验并分段交付?

解题切入:模糊任务先识别成功口径、用户和 owner 的关键未知量,按风险排序验证假设,再以小里程碑交付并更新范围。

阅读这道题的独立深文 →
Behavioral · 26

讲一个最大的工作失误

讲一个最大的工作失误:如何承担责任、止损、恢复,并建立防复发机制?

解题切入:最大失误要说明本人判断、影响范围、及时止损与沟通、对应根因的防复发措施;不把补救包装成未发生错误。

阅读这道题的独立深文 →
Solution Architecture · 27

金融领域 SA Panel 的 MVP sales pitch 如何把客户问题、架构、脱敏小 Demo、风险和时间控制连成闭环?

金融领域 SA Panel 的 MVP sales pitch 如何把客户问题、架构、脱敏小 Demo、风险和时间控制连成闭环?

解题切入:SA 金融 MVP Panel 先界定客户问题与验收指标,再展示最小数据路径、脱敏 demo、迟到/更正/审计边界和成本假设;具体金融用例必须标训练示例。

阅读这道题的独立深文 →
JavaScript Coding · 28

Databricks 客户端Fetch

Databricks 客户端Fetch:并行请求、批次与部分失败:把逐个请求改成有界并行批次,保留输入顺序并正确处理HTTP与JSON错误。

解题切入:串行await一条再发下一条,等待时间接近各延迟之和;同批并行可把该批等待缩至最慢请求附近。但无界Promise.all(urls.map(...))会同时调度所有请求,占用连接、限流预算与内存。

阅读这道题的独立深文 →

Next Step

把题目放回面试流程

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

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