请实现并讲解 LeetCode 130题“被围绕的区域”的解法:给定一个m×n的矩阵,包含'X'和'O',要求捕获所有被'X'围绕的'O'区域。
考察说明
考察深度优先搜索或广度优先搜索在矩阵连通域问题中的应用及边界处理
回答思路
- 识别出与边界相连的'O'不会被替换,其余被包围的'O'需改为'X'
- 能够从边界出发进行DFS或BFS标记所有可达的'O'
- 最后遍历矩阵,将未标记的'O'替换为'X',已标记的保持'O'
- 正确分析时间复杂度O(m*n)和空间复杂度O(m*n)或O(1)(原地标记)
- 考虑递归栈溢出风险,能提出迭代方式或使用BFS
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。