目录
正在加载目录...

Pinterest SDE VO 面经|Coding 题与 Follow-up 完整记录

最近参加了一场 Pinterest SDE VO,整体围绕 Behavioral Questions 和 Coding 两部分展开。BQ 部分主要聊了过往的项目经历,以及遇到需求不明确时是怎么推进的。

Coding 是一道和 Pin active intervals 相关的题,核心思路是用 Sweep Line 配合 Hash Map,统计每个时间段内有多少个不同的 Pin 处于 active 状态。题目本身难度不算高,真正拉开差距的是后面的 Follow-up,很考验对原有思路的延展。面试官先追问了相邻区间的 count 相同时,如何把它们合并成一个区间,随后又问到如果数据变成 Streaming、interval 无法一次性拿到,该怎么处理。

下面把这次面试的流程、BQ、Coding 题和 Follow-up 完整整理了一遍,供准备 Pinterest SDE 面试的同学参考。

Pinterest SDE VO 面经|Coding 题与 Follow-up 完整记录

Pinterest SDE VO 面试流程

Pinterest SDE 通常会在 Recruiter Screen 和 Technical Screen 之后进入 Virtual Onsite(VO)。具体面试轮次和考察内容会根据岗位级别及招聘安排有所不同。

Round主要内容常见时间
Coding 1Data Structures & Algorithms45–60 min
Coding 2Data Structures & Algorithms45–60 min
Coding 3Coding / Technical45–60 min
System DesignSystem Design / Architecture45–60 min
Behavioral / Hiring Manager项目经历、协作、行为问题30–45 min

其中 2–3 轮 Coding + 1 轮 System Design + 1 轮 Behavioral/Manager 是目前多份候选人报告中比较常见的组合。

Pinterest SDE VO BQ

1. Tell me about a challenging project you’ve worked on — what were the main difficulties?

主要介绍一个自己做过的比较有挑战的项目,以及项目中遇到的主要困难。回答时可以重点讲清楚项目背景、具体问题、自己负责的部分,以及最后是怎么解决的。

2. Have you ever run into unclear requirements? How did you move things forward?

这个问题主要围绕需求不明确展开。面试中比较重要的是 clarification。遇到不清楚的需求时,可以先确认输入、输出、边界条件和预期结果,再开始设计解法。

Pinterest SDE VO Coding 题

题目描述

给出一批 Pin 的 active intervals。同一个 Pin 可能有多个 interval,而且这些 interval 之间可能存在重叠。要求统计每一个连续时间段内,有多少个不同的 Pin处于 active 状态。例如,一个 Pin 有:

Pin A: [1, 5]
Pin A: [3, 7]

那么在 [3, 5] 这个重叠区间内,Pin A 只能计算一次,不能因为存在两个 interval 就算成两个 active Pin。最终需要得到每个时间段对应的 distinct active Pin 数量。

解题方法

这道题可以使用 Sweep Line + Hash Map / Counter。首先把每一个 interval 拆成两个 event:start event,end event。例如:Pin A: [1, 5] 可以拆成:(1, start, A) (5, end, A)。

然后把所有 event 按照时间排序,从左到右处理。关键点是不能直接统计 interval 的数量,因为同一个 Pin 可能同时存在多个 active interval。可以为每个 Pin 维护当前还有多少个 active interval:

Pin A → 2
Pin B → 1
Pin C → 0

当某个 Pin 的第一个 interval 开始时,distinct active Pin 数量加 1。如果同一个 Pin 又出现一个重叠 interval,只增加这个 Pin 对应的 interval count,不增加 distinct Pin 数量。当 interval 结束时,对应的 interval count 减 1。只有当这个 Pin 的 active interval 数量变成 0 时,distinct active Pin 数量才减 1。这样就能解决同一个 Pin 重叠区间重复计算的问题。

时间复杂度

假设一共有 n 个 intervals,需要先生成 2n 个 events,然后进行排序。因此:时间复杂度:O(n log n) 空间复杂度:O(n)这道题真正容易出错的地方并不是排序,而是 distinct Pin 这个条件。如果直接用一个整数记录 active interval 数量,遇到同一个 Pin 的重叠区间就会算错。

Follow-up 1:合并相邻 count 相同的区间

题目描述

如果最终得到的两个相邻时间段拥有相同的 active Pin 数量,需要把它们合并。例如:

[1, 3] → 2
[3, 5] → 2
[5, 8] → 4

需要转换成:

[1, 5] → 2
[5, 8] → 4

解题方法

这个 Follow-up 不需要重新设计算法。在原来的 Sweep Line 过程中,每次得到一个新的时间段和对应的 count 时,直接和前一个区间比较。如果:current_count == previous_count,就直接延长之前的区间。如果 count 发生变化,再结束之前的区间并创建新的区间。所以这个 Follow-up 主要是对原始结果增加一次 interval merging。

Follow-up 2:如果数据变成 Streaming 怎么处理?

题目描述

给定一组连续的时间段以及每个时间段对应的 active Pin 数量。如果相邻两个时间段的 active Pin 数量相同,就需要将它们合并成一个更长的时间段。例如:[1, 3] → 2,[3, 5] → 2,[5, 8] → 4,需要合并为:[1, 5] → 2,[5, 8] → 4,也就是说,当两个相邻时间段的 count 相同时,可以直接合并;如果 count 不同,则保持为两个独立的时间段。

解题方法

这个 Follow-up 不需要重新设计原来的算法。在 Sweep Line 处理过程中,每得到一个新的时间段和对应的 count,就将它和前一个时间段进行比较。如果当前 count 和前一个 count 相同,就直接延长前一个时间段的结束位置;如果 count 发生变化,就结束前一个时间段,并创建新的时间段。先确认数据是否保证 ordered,再根据这个条件选择具体实现。这个 clarification 本身也是这道题比较重要的一部分。

Pinterest SDE VO 主要考察什么?

这轮 Coding 的题型并不算特别偏,但 Follow-up 比较多。从这次面试来看,面试官比较关注:

  • Clarification:能不能先确认清楚题目条件
  • Approach:能不能在写代码之前讲清楚思路
  • Code Quality:变量、数据结构和代码结构是否清晰
  • Testing:完成代码后是否主动测试
  • Follow-up:需求发生变化后,能不能在原有思路上继续调整

尤其是这道 interval 题,同一个 Pin 可能出现多个重叠区间,不能简单地把每个 interval 都当成一个独立的 active Pin。遇到这种情况,需要考虑如何维护同一个 Pin 的状态,并在 Follow-up 中继续处理区间合并和 Streaming 场景。

总结

这次 Pinterest SDE VO 就是 BQ 加 Coding,Coding 考的是 interval 加 Sweep Line,后面跟了两个 Follow-up。题不算偏,主要看你能不能先把题意问清楚,再把思路完整写成代码,Follow-up 来了也能在原来的基础上继续改。

如果你正在准备 Pinterest SDE VO,除了刷题,也可以结合真实面经熟悉常见题型、面试流程和 Follow-up 思路。InterviewShow 整理了 Pinterest、Capital One、Amazon、Google、Meta、TikTok 等科技公司的SDE 面试资料、真实面经和备考内容,帮助你针对 Coding、System Design 和 Behavioral Interview 进行系统准备。

想获取更多 Pinterest 及相关公司的面试支持,欢迎随时联系 InterviewShow。

Pinterest SDE VO FAQ

Pinterest SDE VO 面试考什么?

Pinterest SDE VO 主要包括 Behavioral Interview 和 Coding。Coding 环节除了考察解题能力,也比较关注 clarification、解题思路、代码质量、testing 以及 Follow-up。

Pinterest SDE VO 有 BQ 吗?

有。Pinterest SDE VO 中可能会安排 Behavioral Questions,常见问题包括项目经历、遇到的困难,以及面对不明确需求时如何推进工作等。

Pinterest SDE VO 有 Follow-up 吗?

有。Coding 完成后可能会继续增加 Follow-up,例如要求合并相邻的相同区间,或者改变输入方式,讨论 Streaming 场景下如何处理。

Pinterest SDE VO Coding 难吗?

Pinterest SDE VO 的 Coding 题不一定都是复杂算法,实际面试中可能涉及 interval、Sweep Line、Hash Map 等常见方法。相比单纯写出代码,面试官也会关注题意理解、思路表达和后续问题处理。

END