LeetCode 130 周围的区域

小夏 科学 更新 2024-03-07

给定一个二维矩阵,包含:'x'跟'o'(字母 o)。

找到所有这些'x'在该区域周围,并将所有这些区域放在'o'跟'x'填充。

例:

x x x x

x o o x

x x o x

x o x x

运行函数后,矩阵变为:

x x x x

x x x x

x x x x

x o x x

解释:

包围的间隔在边界上不存在,换言之,在任何边界上都不存在'o'它们都不会被填充为'x'。任何不在边界上的东西,或者不在边界上的东西'o'连接'o'最终将填充为'x'。如果两个元素在水平或垂直方向上相邻,则称它们为“连接”。

我们需要把所有被 X 包围的 O 都变成 X,标题明确指出,边缘的所有 O 都不能变成 X。

事实上,我们会发现,除了边缘的 o 和连接到边缘 o 的 o 之外,我们不需要变成 x,其他一切都需要变成 x。

经过上述反思,问题转化为一个相互关联的区域问题。 在这里我们需要标记它边缘的を和与边缘相连的を。当然,我们可以使用额外的空间来保存它,但对于这个问题,我们可以完全变异。 这样,空间复杂度会好一点。

整个过程如图所示:

我会的边缘的を和与边缘相连的を标签"a"

二维数组 DFS 解决方案模板转换问题是连接问题原有数组直接变异,节省空间的语言支持:js、python3、cpp

* *lc app=leetcode id=130 lang=j**ascript * 130] 包围区域 * 将 O 和周围的 O 转换为函数标记(board, i, j, rows, cols) ** param board * return 不返回任何内容,改为就地修改板。 */var solve = function (board) for (let i = 0; i < rows; i++)else if (board[i][j] === "a") return board;};
python code:

class solution: def solve(self, board: list[list[str]])none: """ do not return anything, modify board in-place instead. """如果数字的长度或宽度小于或等于 2,则无需替换 if len(board) < = 2 或 len(board[0]) = 2: return row, col = len(board), len(board[0]) def dfs(i, j):"""深度优先算法(如果符合条件)替换为 a 并进一步测试,否则停止""" if i < 0 or j < 0 or i >= row or j >= col or board[i][j] != 'o': return board[i][j] = 'a'DFS(i - 1, j) DFS(i + 1, j) DFS(i, j - 1) DFS(i, j + 1) 从范围(行)中 i 的外围开始: dfs(i, 0) dfs(i, col-1) for j in range(col): dfs(0, j) dfs(row-1, j) 最后完成 i in range(row) 的替换: 对于 j in range(col):  如果板[i][j] =='o': board[i][j] = 'x' elif board[i][j] == 'a': board[i][j] = 'o'
cpp code:

class solution , void dfs(vector> &board, int x, int y) public: void solve(vector>& board) for (int j = 0; j < n; +j) for (auto &row : board)
复杂性分析时间复杂度:$o(行 * 列)$Space复杂度:$o(行 * 列)$

相似文章

    身高176,体重130的她,被粉丝称为美臀女王

    东西方在审美上有一定的差异,但这种差异不是很大。例如,前凸在东方和西方都被认为是美丽的,但东方人可能对前凸和后弯的程度更微妙,而西方人则认为它可能更夸张一些。身高公分,体重斤的她,身材修长修长,被粉丝称为 美臀女王 她的身体比例类似于连环画,这在现实中是罕见的。起初,她只是在社交平台上分享 很多人表...

    武汉大学被天大背叛了130年?悠久的历史?对不起,我不同意!

    武汉大学青上校被天大背后捅刀子 年悠久的历史?对不起,我不同意!今年是武汉大学建校周年,受到校友界的广泛关注。然而,当雷军以亿的巨额捐款成为历史上最慷慨的校友之一时,天津大学并没有给予武汉大学足够的认可和支持。在这个重要的时刻,天津大学捅了捅武汉大学的骨干,让人感到颇为遗憾和无奈。武汉大学被天大背叛...

    他在春晚“成名”,缝了130针,现在靠卖厕所为生

    王伟曾在 月日山东兄弟回忆录 一诗中说 作为一个陌生人,独自一人在异国他乡,每个节日都充满了亲人。而在以往的春晚中,有一位才华横溢的歌手,他用了一首歌唱出了对流浪者的思念之情。他是个歌手 陈少华.又是月日,重阳难聚,想家的人在外面漂流。现在听起来是这样歌声依旧挥之不去。但令人费解的是,如此才华横溢的...

    武汉大学庆祝被天大背叛130周年对不起,我不这么认为!

    今年,武汉大学迎来了建校周年,这一消息引起了广泛关注。庆典现场,雷军的慷慨捐赠成为焦点,他以亿的金额创下了校友单笔捐款的新纪录。雷军的捐赠不仅体现了他大爱的精神,也体现了他对母校的无私奉献。这样的举动无疑给了武汉大学一个非常温暖和鼓舞人心的开端。雷军的慷慨捐赠,不仅是一种捐赠行为,更代表了他对母校的...

    武汉大学青上校被天大刺了130年?悠久的历史?对不起,我不这么认为!

    天津大学号称是中国现代高等教育史上最早的高等学府,成立于年月日,至今已有年的历史。另一方面,武汉大学则宣传其建校时间从年的紫强学校算起,今年是该校建校周年。然而,根据年武汉大学学报的报道,成立日期是年,与年相差年。历史学家和教育界对这一争议没有一致认可。因此,无论是周年还是周年,还有待验证。从官方承...