myeclipse做网站更改名字,织梦网站模板如何安装教程视频教程,免费推广网址大全,打开百度地图导航1. 题目
2. 分析
这题其实非常不错。如果正向解#xff0c;非常麻烦#xff1b;因为很难界定哪些O是被包围的#xff1f;但是如果反向解呢#xff1f;因为边界的O不会被包围#xff0c;那么就可以想到跟边界O相连的O都不会被包围。那么除此之外的O都会被包围#xff0c…1. 题目
2. 分析
这题其实非常不错。如果正向解非常麻烦因为很难界定哪些O是被包围的但是如果反向解呢因为边界的O不会被包围那么就可以想到跟边界O相连的O都不会被包围。那么除此之外的O都会被包围题目就解决了。
3. 代码
class Solution:def solve(self, board: List[List[str]]) - None:Do not return anything, modify board in-place instead.m, n len(board), len(board[0])vis [[0] * n for i in range(m)]# 只从边界遍历for i in [0,m-1]:for j in range(n):if board[i][j] O: self.dfs(i, j, m, n, vis, board)for j in [0, n-1]:for i in range(m):if board[i][j] O: self.dfs(i, j, m, n, vis, board)print(vis)for i in range(m):for j in range(n):if vis[i][j] 0:board[i][j] Xdef dfs(self, i, j, m, n, vis, board):if i0 and j0 and im and j n:if vis[i][j] 0 and board[i][j] O:vis[i][j] 1for item in [(i-1,j), (i, j-1), (i1, j), (i, j1)]:new_i, new_j itemself.dfs(new_i, new_j, m, n, vis, board)