423 字
2 分钟
代码随想录算法训练营第四十四天 | 图论 Part02

卡码网:99. 岛屿数量#

题目链接

import sys
input = 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 sys
from collections import deque
input = 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 sys
input = 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/
作者
Jarrett
发布于
2025-07-31
许可协议
CC BY-NC-SA 4.0