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)的应用。