博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode讲解--695. Max Area of Island
阅读量:5772 次
发布时间:2019-06-18

本文共 1694 字,大约阅读时间需要 5 分钟。

题目

Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) connected 4-directionally (horizontal or vertical.) You may assume all four edges of the grid are surrounded by water.

Find the maximum area of an island in the given 2D array. (If there is no island, the maximum area is 0.)

Example 1:

[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,1,1,0,1,0,0,0,0,0,0,0,0], [0,1,0,0,1,1,0,0,1,0,1,0,0], [0,1,0,0,1,1,0,0,1,1,1,0,0], [0,0,0,0,0,0,0,0,0,0,1,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,0,0,0,0,0,0,1,1,0,0,0,0]]

Given the above grid, return 6. Note the answer is not 11, because the island must be connected 4-directionally.

Example 2:

[[0,0,0,0,0,0,0,0]]

Given the above grid, return 0.

Note: The length of each dimension in the given grid does not exceed 50.

讲解

一看这题我首先想到的就是并查集,只不过我们需要稍作改动,我们需要知道每个并查集的元素大小,所以我加入了一个size属性,而为了节省空间去掉了value属性。另外,我们还需要一个空间来存储DS结点,而且最好是很快的取出,所以我使用了hashmap来存,但key是一个整数元组(tuple),但java不能很方便的使用tuple,所以我直接变相的使用字符串来实现Key。

java代码

class Solution {    public int maxAreaOfIsland(int[][] grid) {        Map
map = new HashMap<>(); for(int i=0;i
=0 && grid[i-1][j]==1){ ds.union(map.get((i-1)+","+j), ds); } if(j-1>=0 && grid[i][j-1]==1){ ds.union(map.get(i+","+(j-1)), ds); } } } } int result = 0; for(String s:map.keySet()){ int size = map.get(s).find().size; if(result
yParent.rank){ yParent.parent = xParent; xParent.size += yParent.size; }else if(xParent.rank

转载地址:http://ugaux.baihongyu.com/

你可能感兴趣的文章
变量声明提升1
查看>>
系列文章目录
查看>>
手把手教你如何提高神经网络的性能
查看>>
前端布局原理涉及到的相关概念总结
查看>>
递归调用 VS 循环调用
查看>>
使用sstream读取字符串中的数字(c++)
查看>>
树莓派下实现ngrok自启动
查看>>
javascript静态类型检测工具—Flow
查看>>
MachineLearning-Sklearn——环境搭建
查看>>
node学习之路(二)—— Node.js 连接 MongoDB
查看>>
《深入理解java虚拟机》学习笔记系列——垃圾收集器&内存分配策略
查看>>
通过XAML Islands使Windows桌面应用程序现代化
查看>>
Javascript 深入浅出原型
查看>>
简单之极,搭建属于自己的Data Mining环境(Spark版本)
查看>>
Ruby 2.5.0概览
查看>>
如何通过解决精益问题提高敏捷团队生产力
查看>>
Apache下.htaccess文件配置及功能介绍
查看>>
Magento XML cheatsheet
查看>>
Egg 2.19.0 发布,阿里开源的企业级 Node.js 框架
查看>>
Kubernetes 弹性伸缩全场景解析 (四)- 让核心组件充满弹性 ...
查看>>