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

OD 算法题 B卷【最大岛屿体积】

文章目录

  • 最大岛屿体积

最大岛屿体积

  • 大于0的数表示陆地,0表示水,请计算由陆地、水组成的网格中最大岛屿的体积;
  • 陆地的数字之和表示所在岛屿的体积,岛屿总是被水包围,并且每座岛屿只能由水平或者垂直方向上相邻的陆地连接形成;
  • 假设该网格的四条边均被水包围;

输入描述:
第一行输入网格的宽度、高度;
后面几行输入网格数据;

输出描述:
输出岛屿的最大体积

示例
输入:
5 5
0 1 1 0 0
0 1 1 0 0
0 0 0 0 0
0 0 1 2 3
0 0 1 3 9
输出:
19

python实现:

  • BFS,借助队列;
  • 遍历二维数组中的每个值,当其大于0且未被访问时,开始广度优先搜索,并计算当前岛屿的体积,与默认的最大值比较,取两者中的最大值;
  • 注意避免位置的重复入队,会导致某些陆地值的重复计算;

col, row = list(map(int, input().strip().split()))
matrix = []
for i in range(row):matrix.append(list(map(int, input().strip().split())))# 记录岛屿的最大体积
max_vol = 0
# 标记是否已访问
visited = [[0 for j in range(col)] for i in range(row)]# 遍历二维数组中的每个元素,大于0时则开始广度优先搜索陆地
for i in range(row):for j in range(col):if matrix[i][j] > 0 and visited[i][j] == 0: # 陆地的起始点,并开始广度优先搜索# BFS 借助队列q = [(i, j)]  # 存入起始点# 四个方向directions = [0, 1, 0, -1, 0]temp_vol = 0  # 统计当前岛屿的体积while q:cur_x, cur_y = q.pop(0)print("cur x, y", cur_x, cur_y)temp_vol += matrix[cur_x][cur_y]visited[cur_x][cur_y] = 1# 取四个方向的位置for d in range(4):next_x = cur_x + directions[d]next_y = cur_y + directions[d+1]if next_x >= 0 and next_x < row and next_y >= 0 and next_y < col and visited[next_x][next_y] == 0 and matrix[next_x][next_y] > 0:if (next_x, next_y) not in q:  # 注意去重q.append((next_x, next_y))# 取岛屿体积的最大值print(temp_vol)max_vol = max(max_vol, temp_vol)print(max_vol)

相关文章:

  • 第三章支线四 ·事件风暴 · 时序与响应的协奏
  • 无源一阶低通电路噪声如何计算
  • NIFI的处理器:SplitJson 2.4.0
  • 达梦数据库EXISTS子查询实战指南
  • 如何迁移Cordova应用到HarmonyOS 5 以及迁移时常见的问题?
  • Solidity从入门到精通-Remix的基本使用和Solidity的基本数据类型
  • 当建筑成为“精装盒子”:MiC技术如何重塑未来建造
  • 期货与期权市场基本原理是什么?
  • configure构建工程
  • 申请大模型备案对企业的具体价值体现在哪些方面?
  • 数据集转换xml2txt 、xml2json、json2coco
  • 32位寻址与64位寻址
  • Logistics | 盘盈盘亏与报溢报损
  • 4.redis集群
  • Spring Boot 多模块项目最佳实践:结构设计与依赖管理
  • C++中优雅的属性封装:Sint类设计分析
  • 【链接、装载和库】三、目标文件详解
  • [Java恶补day20] 54. 螺旋矩阵
  • RK3568/RK3588 KVM系统虚拟化解决方案
  • 吉客云ERP集成金蝶ERP(云星空、云星辰、云星瀚、KIS、K3、EAS)
  • 东莞加盟网站建设/公司软文
  • 大兴西红门网站建设/北京seo方法
  • 动态网站开发典型案例/百度seo排名优化联系方式
  • 建设工程质量+协会网站/互联网项目推广平台有哪些
  • 购物网网站建设开题报告/互联网推广项目
  • 运城网站建设公司有多少钱/千瓜数据