Snap Onsite 面试经验总结

1. 岛屿问题 (Matrix)

  • 基础问题: 给定一个二维矩阵代表地图(包含 1 代表陆地,0 代表水域),计算其中岛屿的数量。
  • 进阶问题 (Follow-up): 在计算出岛屿数量后,需要进一步判断并返回有多少种不同形状的岛屿。这通常需要对每个岛屿的形状进行规范化表示,然后统计独立形状的数量。

2. 机器学习系统设计 (ML System Design)

  • 面试题目: 讨论如何构建一个特征工程(Feature Engineering)的 Pipeline。
  • 面试反馈: 您提到这部分是您的知识盲区,可能未能很好地回答,导致在此环节遇到困难。

3. 数组压缩 (类似 Run-Length Encoding)

  • 面试题目: 给定一个字符数组,将其进行压缩。例如,将 ['a','a', 'a', 'b', 'b'] 转换为类似 ['a','3', 'b', '2'] 的形式(注意:您给出的目标 ['a','3', 'b', '2', 'b'] 可能有误,通常 RLE 是字符加计数)。
  • 您的解法: 使用了三指针的方法。
  • 挑战: 您特别提到这个问题存在非常多的边界情况(Corner Cases),需要仔细考虑。

4. 寻找最优位置 (Matrix with Obstacles)

  • 面试题目: 在一个包含障碍物的二维矩阵中,存在几个目标点。需要找到一个最佳的可通行位置(坐标),该位置到所有目标点的某种距离度量(例如,总距离或到最远目标的距离)是最优的。
  • 要求: 返回找到的最佳位置的坐标,并打印出该位置到每一个目标点的具体距离。这通常涉及到图搜索算法(如 BFS)的应用。
Previous
Previous

Amazon Applied Scientist 面试经验分享:模型优化与系统挑战全景解析 | 面试代面 模拟面试 模型压缩 算法面试

Next
Next

Quora 面试经验分享:ML系统设计与实战演练全流程 | 面试代面 技术面试辅导 系统设计 面试技巧