423 字
2 分钟
代码随想录算法训练营第四十四天 | 图论 Part02
卡码网:99. 岛屿数量
import sysinput = sys.stdin.read
def main(): data = input().split() n, m = int(data[0]), int(data[1]) index = 2 graph = [[0] * m for _ in range(n)] for i in range(n): for j in range(m): graph[i][j] = int(data[index]) index += 1 visited = [[False] * m for _ in range(n)]
def dfs(x, y): if x < 0 or x >= n or y < 0 or y >= m: return if graph[x][y] == 0 or visited[x][y]: return visited[x][y] = True dfs(x - 1, y) dfs(x + 1, y) dfs(x, y - 1) dfs(x, y + 1)
res = 0 for i in range(n): for j in range(m): if graph[i][j] == 1 and not visited[i][j]: dfs(i, j) res += 1
print(res)
main()
import sysfrom collections import dequeinput = sys.stdin.read
def main(): data = input().split() n, m = int(data[0]), int(data[1]) index = 2 graph = [[0] * m for _ in range(n)] for i in range(n): for j in range(m): graph[i][j] = int(data[index]) index += 1
visited = [[False] * m for _ in range(n)]
def bfs(x, y): queue = deque() queue.append((x, y)) visited[x][y] = True
while queue: cx, cy = queue.popleft() for nx, ny in [(cx - 1, cy), (cx + 1, cy), (cx, cy - 1), (cx, cy + 1)]: if 0 <= nx < n and 0 <= ny < m: if graph[nx][ny] == 1 and not visited[nx][ny]: visited[nx][ny] = True queue.append((nx, ny))
res = 0 for i in range(n): for j in range(m): if graph[i][j] == 1 and not visited[i][j]: bfs(i, j) res += 1
print(res)
main()
卡码网:100. 岛屿的最大面积
import sysinput = sys.stdin.read
def main(): data = input().split() n, m = int(data[0]), int(data[1]) index = 2 graph = [[0] * m for _ in range(n)] for i in range(n): for j in range(m): graph[i][j] = int(data[index]) index += 1 visited = [[False] * m for _ in range(n)]
def dfs(x, y): if x < 0 or x >= n or y < 0 or y >= m: return 0 if graph[x][y] == 0 or visited[x][y]: return 0 visited[x][y] = True area = 1 area += dfs(x - 1, y) area += dfs(x + 1, y) area += dfs(x, y - 1) area += dfs(x, y + 1) return area
res = 0 for i in range(n): for j in range(m): if graph[i][j] == 1 and not visited[i][j]: res = max(res, dfs(i, j))
print(res)
main()
代码随想录算法训练营第四十四天 | 图论 Part02
https://fuwari.vercel.app/posts/code_musings_day_forty-four/