【LeetCode】被围绕的区域 Java 题解
题目描述
给你一个 m x n 的矩阵 board,由若干字符 'X' 和 'O' ,找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。
复制代码
思路分析
今天的算法每日一题是被围绕的区域,这个题目的描述不清楚,我们还需要结合示例来理解。
示例 1 指出了被围绕的区间不会存在于边界上,换句话说,**任何边界上的 'O' 都不会被填充为 'X'。**根据这个条件,我们可以使用 DFS 来解决这个问题。先找到边界上的 'O', 与他相邻的 O 都不可以被替换,其他的 O 是可以替换的。实现代码如下:
通过代码
复制代码
总结
上述算法的时间复杂度是 O(rows * cols), 空间复杂度是 O(rows * cols)
坚持算法每日一题,加油!
版权声明: 本文为 InfoQ 作者【HQ数字卡】的原创文章。
原文链接:【http://xie.infoq.cn/article/a1d326ba25ba11235050f3476】。文章转载请联系作者。
评论