当前位置: 首页 > news >正文

207、【图论】孤岛的总面积

题目

在这里插入图片描述
在这里插入图片描述

思路

相比于 206、【图论】岛屿数量,就是在这个代码的基础上。先遍历边界,将边界连接的岛屿变为0,然后再计算一遍当前为1的岛屿面积。
在这里插入图片描述

在这里插入图片描述

代码实现

import collections

n, m = list(map(int, input().split()))
graph = []

for _ in range(n):
    graph.append(list(map(int, input().split())))

directions = [[0, 1], [0, -1], [-1, 0], [1, 0]]
res = 0

def traversal(i, j):
    que = collections.deque()
    que.append([i, j])
    graph[i][j] = 0

    global res  
    res += 1

    while que:
        x, y = que.popleft()
        for move_x, move_y in directions:
            next_x, next_y = x + move_x, y + move_y
            if next_x < 0 or next_x >= n or next_y < 0 or next_y >= m:
                continue
            elif graph[next_x][next_y] == 1:
                res += 1            
                graph[next_x][next_y] = 0                            
                que.append([next_x, next_y])


for i in range(n):
    if graph[i][0] == 1:
        traversal(i, 0)
    if graph[i][m - 1] == 1:
        traversal(i, m - 1)

for i in range(m):
    if graph[0][i] == 1:
        traversal(0, i)
    if graph[n - 1][i] == 1:
        traversal(n - 1, i)

res = 0
for i in range(n):
    for j in range(m):
        if graph[i][j] == 1:
            traversal(i, j)            


print(res)

参考文章:101. 孤岛的总面积

相关文章:

  • 【Godot4.2】Vector2向量插值的应用
  • DeepSeek 多模态大模型 Janus-Pro 本地部署教程
  • Android中的FragmentTransaction是什么以及如何使用它
  • 机器学习项目实战——信用评分与贷款风险评估(主页有源码)
  • Spring Boot整合MapStruct教程
  • Tomato 文件包含漏洞靶机 通关攻略
  • LeetCode Hot100刷题——对称二叉树
  • 高级java每日一道面试题-2025年2月22日-数据库篇[Redis篇]-Redis是什么?
  • Hi3516DV300 移植Qt
  • 数组 与 高精度
  • 蓝桥杯备考:数据结构vector-----询问学号
  • SqlServer数据库报错紧急或可疑无法访问的修复过程,亲测有效。
  • MySQL库和表的操作详解:从创建库到表的管理全面指南
  • MS-DOS 6.22 下建立 FTP 服务器
  • Oracle数据库存储结构--物理存储结构
  • 【性能优化】MySQL 生产环境 SQL 性能优化实战案例
  • Node.js学习分享(下)
  • 3-002: MySQL 中使用索引一定有效吗?如何排查索引效果?
  • 【蓝桥杯】3514字串简写
  • 【LangChain接入阿里云百炼deepseek】
  • 12年政企同心共织民生保障网——上海国寿与嘉定区政府创新民生综合保险项目
  • 王毅会见美国亚洲协会会长康京和
  • “80后”湖南岳阳临湘市市长刘琦任临湘市委书记
  • 住建部:我国超9.4亿人生活在城镇
  • 黄仁勋:新一代计算平台GB300三季度上市,AI计算能力每十年提升100万倍
  • 沧州盐碱地“逆天改命”:无用之地变良田,候鸟翔集水草丰美