先分岗位
Pinterest 的不同岗位和团队可能考不同内容。先核对 JD 与面试邀请,再选对应题型。
Question Study
本地面经库有 38 条来源 URL 去重后的记录,其中 37 条有正文;目前整理出 34 道代表练习题,其中 34 道已完成独立深文。题目清单仍在逐帖核对和补充。
Reading Guide
题目根据面经方向重新表述,其中可能包含站内攻略建议的训练题;它们不是公司的官方题库,也不保证下一场面试重复出现。
Pinterest 的不同岗位和团队可能考不同内容。先核对 JD 与面试邀请,再选对应题型。
相同核心考点只保留一条,后续的附加约束放在原题里练,避免把同一道题当成多道题刷。
先口述输入、输出和边界,再写核心方案;最后解释复杂度、失败路径和面试官可能追加的约束。
Featured Deep Dive
先把这道题的核心思路讲完整,再根据自己的目标岗位挑下面的题继续练。
给定 violation records,统计每个 policy 下 unique pins,并支持 date range 查询和重复记录去重。
Deduplicated Question Map
同一题的追加条件合并在一条里。题目清单用于确定训练范围;具体流程和准备优先级见公司攻略。
给定 violation records,统计每个 policy 下 unique pins,并支持 date range 查询和重复记录去重。
阅读这道题的独立深文 →给定 board→pins 成员关系,判断两个 pin 是否连通,求两个 pin 的最短距离以及两个 board 中任意 pin 的最短距离;多次查询讨论缓存。
解题切入:按 board→pins 建反向 pin→boards 索引,多源 BFS 每经过一个共享 board 算 pin 距离 +1;board 距离从第一个 board 的所有 pin 同时出发,命中第二个 board 任意 pin 即结束。
阅读这道题的独立深文 →管理有限房间游戏的玩家位置:advance/get_room O(1),leaderboard(k) 按房间倒序、同房先到先排;另一原帖追问 O(1) 查询指定房间人数。
解题切入:用玩家→节点索引、房间内按到达顺序的双链表,以及仅包含非空房间的降序双链表;advance 从房间 r 移到 r+1 可 O(1) 插入相邻桶,leaderboard 只遍历前 k 个玩家。
阅读这道题的独立深文 →给 forest 的 parentIndex 数组和 target,把 target 及整棵子树标成 -1;追问稳定压紧剩余节点并重写 parent index。
解题切入:parentIndex 建 children 邻接表,DFS 标记目标子树;稳定扫描幸存旧索引得到 old→new 映射,再将幸存节点的 parent 改成新索引,尾部补 -1。
阅读这道题的独立深文 →给不同 Pin 类型的高度和屏幕高度,若 Pin 类型可重复使用,求恰好填满屏幕的最少 Pin 数;无解返回 -1。
解题切入:若每种 Pin 高度可重复使用,则 dp[x]=1+min(dp[x−h]),只从可达状态转移;必须恰好填满,不能把低于屏幕的组合算作答案。原帖未给使用次数,先标训练假设。
阅读这道题的独立深文 →已有 next() 每次返回任意长度字符串块,其中 //n 表示行分隔;跨块恢复完整行,处理分隔符切在 chunk 边界及末尾残行。
解题切入:把 next() 看作任意分块的字符流,保留可能属于分隔符前缀的 pending;只有完整遇到 //n 才输出一行,EOF 时输出非空残行。
阅读这道题的独立深文 →给 transactions=(from,to,amount),输出任意一组 paybacks 让所有人净余额清零;不要求最少笔数,金额与方向需一致。
解题切入:先把交易变成每人的净流入,正余额者向负余额者回付;双指针每笔清掉至少一方余额,所以最多非零人数减一笔,不必解最少交易数难题。
阅读这道题的独立深文 →给多张有向旅行机票 (from,to),起点未知,输出用完每张票恰好一次的路线;分支、重复票和无解规则需事先约定。
解题切入:旅行票若每张必须用一次,是有向 Euler trail:先按出入度找唯一起点,无不平衡点时按训练并列规则选起点,Hierholzer 消耗所有票后逆序输出并校验边多重集。
阅读这道题的独立深文 →设计稀疏矩阵存储、加法与乘法;定义 COO 坐标输入、重复项求和、维度校验,只遍历可能产生非零结果的项。
解题切入:稀疏矩阵训练版用 COO 合并重复坐标;加法按坐标相加,乘法按 B 的共享维行建索引,只枚举 A(i,k) 与 B(k,j) 非零配对。
阅读这道题的独立深文 →设计商家商品单条更新与 CSV 批量非实时更新服务:上传对象存储、校验、分区处理、可靠重试、版本和查询一致性。
解题切入:单条商品更新走受控 API 和条件版本写入,CSV bulk 先直传对象存储、异步校验、按商家/商品分区后幂等写入;文件结果与行级错误须可查询和重试。
阅读这道题的独立深文 →整合两个广告日志来源,统计 click/view 并按 location、gender、age 分组;支持历史范围重算、去重与可追溯数据口径。
解题切入:两个广告日志源先统一 event ID、event time 和 click/view schema,按事件去重,再按 location/gender/age 与日期聚合;补数重算需冻结人口属性口径和时间分区。
阅读这道题的独立深文 →设计按 category 的 leaderboard,并比较批量刷新与实时更新方案;定义分数、同分顺序、榜单查询和迟到事件。
解题切入:按 category 维护分数物化榜单,先定同分 tie-break 和更新事件去重;批处理成本低但滞后,实时流处理更新快却需要状态恢复、迟到重算和热点 category 分片。
阅读这道题的独立深文 →二维网格机器人可沿上下左右及对角线八方向移动,标记从起点可到的位置;追加障碍和双机器人追问时先澄清规则。
解题切入:8 方向 BFS/DFS 从起点遍历可走格并标记访问;障碍变体改变可通行集合,双机器人需明确求并集、交集、相遇或路径,不能擅自选一种当原题。
阅读这道题的独立深文 →已有训练好的 Pin embedding,如何构建多个用户兴趣 embedding,支持兴趣分离、召回、更新与冷启动?
解题切入:预训练 Pin 向量可按用户近期和长期正反馈分组或聚类,形成多个兴趣中心;每个中心独立召回候选并去重,避免单个平均向量抹掉不同兴趣。
阅读这道题的独立深文 →设计 Pin 首页 feed ranking,兼顾用户实时互动、召回与排序延迟、安全过滤、多样性和长期目标。
解题切入:首页 feed 先过滤可见性与安全,再多路召回、粗排、精排和重排;实时互动更新短期用户特征,离线长周期特征保留稳定兴趣,按延迟预算分配阶段。
阅读这道题的独立深文 →推荐系统给精排模型多少候选?结合召回率、模型每候选计算量、分布式实例数和延迟预算推算,避免背固定值。
解题切入:候选数由 recall@C 曲线和单候选推理成本共同决定:估每请求候选 C、QPS、模型 FLOPs 与有效吞吐/实例数,再检查 p95 队列和质量拐点。
阅读这道题的独立深文 →给 60GB GPU 如何估算模型服务 batch size?拆模型权重、激活、工作空间、并发和碎片余量,并用压测确认。
解题切入:60GB 只是显存容量上限,先减模型权重、运行时/工作区、KV 或激活与安全余量;用每样本峰值增量估 batch,再以真实序列长度和并发压测修正。
阅读这道题的独立深文 →设计检测不安全 Pin 内容的系统:上传和分发前的分层审核、误杀/漏放、人工复核、对抗与模型更新。
解题切入:不安全内容检测先分政策类别与风险阈值,上传时同步轻量过滤、异步多模态复核,feed 前再检查最新状态;误杀、漏放、人工队列和申诉都要监控。
阅读这道题的独立深文 →设计提升社交平台广告 CTR 的系统,说明 user/ad embedding、训练样本与标签、位置偏差、在线排序和实验护栏。
解题切入:广告 CTR 设计要说明曝光日志的负例与点击正例、事件时间关联、位置偏差和延迟标签;user/ad embedding 从允许的历史与内容特征构造,线上实验同时看转化与负反馈。
阅读这道题的独立深文 →多组超参数各有候选值,输出所有参数组合并设计测试用例;讨论空组、重复值及组合数指数增长。
解题切入:组合枚举从一个空配置开始,逐组把每个已有配置与该组各候选值配对;输出数是各组长度乘积,任何组为空则无结果,测试单组、多组、空组和重复值。
阅读这道题的独立深文 →比较两组输入代表的集合是否相同:忽略输入顺序与重复次数,明确元素可哈希、空集合及是否原地修改。
解题切入:Set 相等要忽略顺序和重复次数,训练版直接转 set 比较;若输入元素不可哈希,需先定义稳定编码或改用排序比较,不能只比原数组长度。
阅读这道题的独立深文 →给非负数组与 K,统计所有连续子数组中 sum×length≤K 的数量;说明负数为何破坏 O(n) 滑窗单调性。
解题切入:当数值非负时,固定右端点扩大窗口的 sum×length 单调不减;左指针一直缩到合法,此时以右端结尾的合法子数组数为 right−left+1。
阅读这道题的独立深文 →从字符串实现十进制 round,并按 p 指定的 10 的幂取整;覆盖 -.2、2.、超长数字、进位和 half-up 并列规则。
解题切入:解析符号、整数和小数位后按 p 的十进制位保留前缀,检查下一位是否≥5 并向左进位;不转 float,故不会因大数溢出,-.2 与 2. 要单测。
阅读这道题的独立深文 →0–999 桶已分配给互斥实验组;按目标百分比调整各组桶数,尽量保留原桶并优先使用原本未分配的桶。
解题切入:桶重配先校验 0–999 唯一归属,再统一缩容并保留每组尽可能多的原桶;扩容先消耗原未分配桶,再使用释放桶,目标比例和舍入规则必须预先确定。
阅读这道题的独立深文 →把 source 的字符放入集合,扫描 target 判断它的字符能否由 source 的字符种类组成;先澄清字符是否可重复使用。
解题切入:source 字符种类入 set 后扫描 target 可判断是否每种目标字符都出现过;若每个 source 字符只能使用一次,必须改用频次统计,不能沿用 set。
阅读这道题的独立深文 →设计 Blackjack 的 Player/Hand、连续 Split 状态机、6–8 副牌 Shoe 发牌与 Cut Card 延后重洗。
解题切入:Blackjack 的 Player 持有多个独立 Hand,连续 Split 只增 Hand 不复制 Player;Shoe 管理多副牌洗发和 Cut Card 信号,按训练约定本局结束再换牌。
阅读这道题的独立深文 →从两个上游 API 收集商家元数据(如粉丝数、成立年份),解决身份映射、字段时间口径、存储和查询服务。
解题切入:商家元数据的两个上游 API 先映射到内部 merchantId,字段级保存值、来源与观察时间;采集和服务解耦,迟到数据不能覆盖新快照,缺失值不能写成零。
阅读这道题的独立深文 →学习率太大和太小时,训练 loss 为什么会振荡或收敛缓慢?用一维二次损失和真实 batch 噪声分开解释。
解题切入:一维二次损失下 θnext=(1−ηa)θ:ηa 介于 1 与 2 时交替收敛,ηa≥2 时发散;大步长更易振荡,但 mini-batch 噪声也会使曲线抖动。
阅读这道题的独立深文 →普通全连接网络反向传播时,靠输入端还是输出端更容易梯度消失?写出链式法则并讨论残差连接等例外。
解题切入:全连接网络早层梯度要经过更多 Jacobian 与激活导数连乘,饱和激活易让靠输入端的梯度消失;残差和初始化会改变这一结论。
阅读这道题的独立深文 →解释 bias–variance、过拟合及防治;用训练/验证学习曲线先排除数据泄漏和时间分布漂移。
解题切入:训练与验证都差先查高偏差、优化或数据质量;训练好而验证差先排泄漏与漂移再查高方差,以额外数据、容量、正则和早停做受控比较。
阅读这道题的独立深文 →比较 L1 和 L2:写出目标函数、权重变零或平滑收缩的条件,并讨论特征尺度和相关特征。
解题切入:一维平方损失下 L1 给软阈值解,可把小权重精确置零;L2 解为 z/(1+λ),通常只平滑收缩。比较前需统一特征尺度和 λ 定义。
阅读这道题的独立深文 →扫广告曝光日志找 Top K;训练版实现 ingestImpressions 和最近 W 时间窗口计数,明确事件顺序、过期边界和并列顺序。
解题切入:广告曝光窗口用队列保留当前事件、计数表按广告聚合;摄入和查询都先清除过期事件,Top K 按次数及稳定并列规则排序。原帖未给 common 的定义。
阅读这道题的独立深文 →实现 Trie 的 add、完整词 search、delete 和前缀 autocomplete;删除保留共享前缀,建议按训练版词典序排序。
解题切入:Trie 节点 children 必须是实例状态;add/search 沿字符走,delete 从叶向上剪只属于该词的节点,autocomplete 枚举前缀子树并明确排序规则。
阅读这道题的独立深文 →旅行共同支出最少付款:先分摊净额,再最大化零和分组:每条支出由payees均分,允许跨原始付款关系清算,输出全体清零的最少交易方案。
解题切入:payer增加应收净额amount,每payee减amount/人数,零净额账户删除。总净额为0是必要不变量。
阅读这道题的独立深文 →Evidence Review
这些帖子只给题名、部分约束或外链;先标注证据缺口,再决定是否补成独立文章。
帖子给加州、纽约、粤菜及篮球的板成员关系,却称加州→粤菜=1、纽约→篮球=0;与其列表和其他两篇的共享板距离示例无法一致解释,待核真实边权。
只给 2345 可变成 335555 或 234 个 5 的示例;缺少转换操作、终止条件和输出集合规则。
公开段只有 root-on-index、target 和两问提示,问句在积分墙后;不据此补造与已成文 forest 题相同的约束。
具体题面在积分墙或附件,公开正文不足以确认接口和约束。
公开帖以图片附件给题,正文未转录可核题面。
只给谐音题号,不能核原题和变体约束;另一帖提无固定起点但不宜仅凭谐音并入机票题。
公开描述有复制整个 a 或删除单字符形成 b,但未说明复制后删除的对象、重复复制的连接方式和操作计数,无法证明最优解。
可见 add/search/delete 操作,但完整原题通过外链提供;站内 Trie 文章仅给明确标注的训练接口。
正文只说项目要加不同类型 cache,没有仓库、接口、驱逐规则和验收标准。
追问有电梯起始层、乘客时间/起点/方向,但第一问 getElevator 规则、速度、目标层和同时呼叫并列规则未公开。
只说明四个 application 同时请求调度且面试官要求询问约束;资源、优先级、节点与目标函数均未公开。
原帖仅题名,没有 API、容量、对象大小、一致性或可用性目标;可做通用训练但不能声称还原该轮。
两轮设计仅给方向,功能、检索语义、安全与规模目标缺失,不能还原具体题面。
只给题名,缺窗口语义、限流键、规模与跨机一致性要求。
帖子仅列密室逃脱 coding 与 Inventory Management System 题名;不能据此认定密室题就是 q3 排行榜,也缺库存系统具体读写接口。
原帖仅说扫 log 找 Top K 广告和滑动窗口摄入,未说明 common 是否为日志交集;q32 只实现明确标注的曝光窗口训练版。
Next Step
题目只是准备的一部分;按公司攻略核对轮次、岗位差异和常见失分点。