Leetcode 827.最大人工岛

1 题目描述(Leetcode题目链接)

  在二维地图上, 0代表海洋, 1代表陆地,我们最多只能将一格 0 海洋变成 1变成陆地。

进行填海之后,地图上最大的岛屿面积是多少?(上、下、左、右四个方向相连的 1 可形成岛屿)

输入: [[1, 0], [0, 1]]
输出: 3
解释: 将一格0变成1,最终连通两个小岛得到面积为 3 的岛屿。
输入: [[1, 1], [1, 0]]
输出: 4
解释: 将一格0变成1,岛屿的面积扩大为 4

说明:

2 题解

  先深度优先搜索记录每个岛屿的面积,然后给每个岛屿标号。再遍历0的位置,将这个0连着的岛屿面积加一起求最大值。

class Solution:def largestIsland(self, grid: List[List[int]]) -> int:m, n = len(grid), len(grid[0])land = collections.defaultdict(int)res = 0def dfs(i, j, color):if grid[i][j] != 1:return 0res = 1grid[i][j] = colorfor d in [(0, 1), (0, -1), (1, 0), (-1, 0)]:x, y = i + d[0], j + d[1]if 0 <= x < m and 0 <= y < n:res += dfs(x, y, color)return rescolor = 2for i in range(m):for j in range(n):if grid[i][j] == 1:land[color] = dfs(i, j, color)res = max(res, land[color])color += 1for i in range(m):for j in range(n):if grid[i][j] == 0:seen = set()S = 1for d in [(0, 1), (0, -1), (1, 0), (-1, 0)]:x, y = i + d[0], j + d[1]if 0 <= x < m and 0 <= y < n and grid[x][y] not in seen:S += land[grid[x][y]]seen.add(grid[x][y])res = max(S, res)return res

Leetcode 827.最大人工岛(Making A Large Island)相关推荐

  1. Leetcode 827. 最大人工岛 C++

    Leetcode 827. 最大人工岛 题目 在二维地图上, 0代表海洋, 1代表陆地,我们最多只能将一格 0 海洋变成 1变成陆地. 进行填海之后,地图上最大的岛屿面积是多少?(上.下.左.右四个方 ...

  2. Java实现 LeetCode 827 最大人工岛(DFS+暴力模拟)

    827. 最大人工岛 在二维地图上, 0代表海洋, 1代表陆地,我们最多只能将一格 0 海洋变成 1变成陆地. 进行填海之后,地图上最大的岛屿面积是多少?(上.下.左.右四个方向相连的 1 可形成岛屿 ...

  3. 力扣leetcode 827. 最大人工岛

    文章目录 题目链接与描述 关键词:hash表 方法一: 运行截图 代码 结尾 题目链接与描述 https://leetcode.cn/problems/making-a-large-island/ 给 ...

  4. 图解LeetCode——827. 最大人工岛(难度:困难)

    一.题目 给你一个大小为 n x n 二进制矩阵 grid .最多 只能将一格 0 变成 1 . 返回执行此操作后,grid 中最大的岛屿面积是多少? 岛屿 由一组上.下.左.右四个方向相连的 1 形 ...

  5. LeetCode 827 最大人工岛 题解

    题目 给你一个大小为 n x n 二进制矩阵 grid .最多 只能将一格 0 变成 1 .返回执行此操作后,grid 中最大的岛屿面积是多少?岛屿 由一组上.下.左.右四个方向相连的 1 形成. 分 ...

  6. LeetCode 827 最大人工岛 C++

    首先DFS遍历"自然"岛的时候,用一个数字位区分每个岛,具体想法是对每个岛进行编号,dfs的同时把1改为当前岛的编号,同时用一个map记录该编号岛的面积. 进入正式流程 遍历矩阵: ...

  7. LeetCode 827题 最大人工岛

    LeetCode 827题 也是递归 class Solution {boolean isChanged = false;int count = 0;int resNum = 0;Map<Int ...

  8. 岛屿问题 通用解-463.岛屿周长-200.岛屿数量-695.岛屿的最大面积-827.最大人工岛

    文章目录 岛屿问题 如何在网格上做DFS(通用解) 463.岛屿的周长 题目 题解 -通用模板 题解2 200.岛屿数量 题目 题解 695.岛屿的最大面积 题目 题解 827.最大人工岛 题目 题解 ...

  9. 9.18 困难力扣827. 最大人工岛

    827. 最大人工岛 - 力扣(LeetCode) 给你一个大小为 n x n 二进制矩阵 grid .最多 只能将一格 0 变成 1 . 返回执行此操作后,grid 中最大的岛屿面积是多少? 岛屿 ...

最新文章

  1. 课后习题代码持续更新。。。。。。。。。。。。。
  2. hdfs 创建用户和用户组_hadoop四:linux用户和组命令
  3. 数学知识--Methods for Non-Linear Least Squares Problems(第一章)
  4. 【响应式Web前端设计】H5原生表单验证
  5. spring配置文件路径修改后web.xml配置
  6. 《快乐编程大本营》java语言训练班-第4课:java流程控制
  7. 利用yum升级操作系统版本(目前最新6.6)
  8. 直播预告:与九位专家聊聊Codec和AOM Summit
  9. 几何画板自定义工具_几何画板最强版 v5.06 中文版(含教程/实例/控件/打包机/工具集)...
  10. 一篇文章了解架构师能力模型
  11. php 精度问题怎么解决,JavaScript 中精度问题以及解决方案
  12. 运维人员的解放----Docker快速部署
  13. HTML5 桌面通知:Notification API
  14. BZOJ2728 HNOI2012与非(并查集+数位dp)
  15. java 任务链模式,flink部署运行架构
  16. 笨方法学python3 epub_Python3.5从零开始学[azw3+epub+mobi][77.37MB]
  17. 2019年上半年软件设计师上午真题及答案解析
  18. matlab模拟正态分布曲线拟合,[MATLAB数学相关] 急请教:正态分布曲线拟合问题
  19. [机器学习入门] 李宏毅机器学习笔记-29 (Sequence Labeling Problem part 1;结构化预测-序列标记 part 1)
  20. 摩伴windows桌面服务器,魔伴windows桌面

热门文章

  1. 团队成员及团队项目简介
  2. C# 中Parse 和TryParse的效率问题
  3. 深度学习 --- Hopfield神经网络详解
  4. SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
  5. 跟燕十八学习PHP-第十八天-开发项目(2)
  6. 汉字为何不能用笔画编码--信息论系列
  7. C51的UART 串口通信
  8. 计算机与现代教育的英语作文,英语作文范文-雅思写作高分范文:电脑与现代教育.doc...
  9. 【树模型与集成学习】(task8)阶段性总结(更新ing)
  10. Springboot - 错误页面重定向 - 根据错误码重定向到指定页面