代码随想录图论部分-695. 岛屿的最大面积|1020. 飞地的数量

695. 岛屿的最大面积

题目:给你一个大小为 m x n 的二进制矩阵 grid 。岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。岛屿的面积是岛上值为 1 的单元格的数目。
在这里插入图片描述

计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0
题目链接:695. 岛屿的最大面积
和岛屿数量很像 这里比较一个最值就行

class Solution {public int[][] move={{0,1},{0,-1},{1,0},{-1,0}};public boolean[][] visited;public int maxAreaOfIsland(int[][] grid) {int max=0;visited=new boolean[grid.length][grid[0].length];for(int i=0;i<grid.length;i++){for(int j=0;j<grid[0].length;j++){if(!visited[i][j]&&grid[i][j]==1){max=Math.max(max,bfs(grid,i,j));  }}}return max;  }public int bfs(int[][] grid,int x,int y){int num=1;Queue<int[]> queue=new LinkedList<>();queue.offer(new int[]{x,y});visited[x][y]=true;while(!queue.isEmpty()){int[] node=queue.poll();for(int p=0;p<4;p++){int nextx=node[0]+move[p][0];int nexty=node[1]+move[p][1];if(nextx<0||nextx>=grid.length||nexty<0||nexty>=grid[0].length){continue;}if(!visited[nextx][nexty]&&grid[nextx][nexty]==1){queue.offer(new int[]{nextx,nexty});visited[nextx][nexty]=true;num++;}}}return num;}
}

1020. 飞地的数量

题目:给你一个大小为 m x n 的二进制矩阵 grid ,其中 0 表示一个海洋单元格、1 表示一个陆地单元格。一次移动是指从一个陆地单元格走到另一个相邻(上、下、左、右)的陆地单元格或跨过 grid 的边界。返回网格中无法在任意次数的移动中离开网格边界的陆地单元格的数量。
在这里插入图片描述

题目链接: [1020. 飞地的数量](https://leetcode.cn/problems/number-of-enclaves/description/)
遇到边界则记录 不能遇到边界就退出 需要找到所有联通的点进行标记

class Solution {public int[][] move={{0,1},{0,-1},{1,0},{-1,0}};public boolean[][] visited;public boolean flag;public int numEnclaves(int[][] grid) {int nums=0;visited=new boolean[grid.length][grid[0].length];for(int i=0;i<grid.length;i++){for(int j=0;j<grid[0].length;j++){if(!visited[i][j]&&grid[i][j]==1){flag=false;int num=bfs(grid,i,j);if(flag==false){nums+=num;}                          }}}return nums;  }public int bfs(int[][] grid,int x,int y){if(x==0||x==grid.length-1||y==0||y==grid[0].length-1){flag=true;}int num=1;Queue<int[]> queue=new LinkedList<>();queue.offer(new int[]{x,y});visited[x][y]=true;while(!queue.isEmpty()){int[] node=queue.poll();for(int p=0;p<4;p++){int nextx=node[0]+move[p][0];int nexty=node[1]+move[p][1];if(nextx<0||nextx>=grid.length||nexty<0||nexty>=grid[0].length){continue;}if(!visited[nextx][nexty]&&grid[nextx][nexty]==1){if(nextx==0||nextx==grid.length-1||nexty==0||nexty==grid[0].length-1)       {flag=true;}queue.offer(new int[]{nextx,nexty});visited[nextx][nexty]=true;num++;}}}return num;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/179485.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊聊leetcode可包含重复数字的序列的《47. 全排列 II》中的vis标记函数

1 题目描述&#xff08;字节二面题目&#xff09; 2 代码 class Solution {List<List<Integer>>res;List<Integer>list;boolean[]used;public List<List<Integer>> permuteUnique(int[] nums) {resnew ArrayList<>();listnew ArrayList&l…

list部分接口模拟实现(c++)

List list简介list基本框架list构造函数list_node结构体的默认构造list类的默认构造 push_back()iteartor迭代器迭代器里面的其他接口const迭代器通过模板参数实现复用operator->() insert()erase()clear()析构函数迭代器区间构造拷贝构造operator() list简介 - list可以在…

永磁材料测试系统主要应用

1. 产品特征 永磁材料测试系统装置具有独立的电参量校准功能。采用慢速减幅方式对样品退磁。超宽范围的电流连续稳定调节。磁通计的积分器零漂和霍尔探头的非线性误差影响小。系统配置连续可调双极性磁化电源&#xff0c;方便样品的磁化与退磁。测量B或J&#xff1a;采用B或J线…

Vue3实现 SKU 规格

效果图 1 HTML 基本结构 1.1 遍历 SKU 规格数据 <template><div class"productConten"><div v-for"(productItem, productIndex) in specifications" :key"productItem.name"><div class"productTitle">{…

CUDA安装

在cmd中输入nvidia-smi。显示CUDA Version&#xff1a;12.3&#xff0c;所以只能下载小于等于12.3的版本。如下图&#xff1a; 进这个网址&#xff1a;https://developer.nvidia.com/cuda-toolkit-archive 选择一个版本下载。 选择完后之后这样选择&#xff1a; 最后点击下载即…

IDEA软件使用步骤

1.IDEA概述 IDEA全称InelliJ IDEA,是用于java语言开发的集成环境&#xff0c;它是业界公认的目前用于Java程序开发最好的工具。 集成环境&#xff1a;把代码编写&#xff0c;编译&#xff0c;执行&#xff0c;调试扽过多种功能综合到一起的开发工具。 下载&#xff1a;https…

群晖Docker(Container Manager)中安装Home Assistant Container

群晖Docker&#xff08;Container Manager&#xff09;中安装Home Assistant Container 不要使用 套件里面的 Home Assistant&#xff0c;不利于后期拓展 方式一&#xff1a; docker run -d --name"home-assistant-1" -v /volume1/docker/homeassistant/config:/c…

docker安装SMQTT

docker安装SMQTT smqtt介绍 官方地址: https://www.smqtt.cc/ 官方文档地址: https://wiki.smqtt.cc/docs/smqtt/ 一款高性能&开源的MQTT服务器&#xff0c;支持单机、容器化、集群部署&#xff0c;支持多种协议&#xff0c;具备低延迟&#xff0c;高吞吐量&#xff0c;…

NSSCTF第12页(2)

[CSAWQual 2019]Unagi 是xxe注入&#xff0c;等找时间会专门去学一下 XML外部实体&#xff08;XXE&#xff09;注入 - 知乎 【精选】XML注入学习-CSDN博客 【精选】XML注入_xml注入例子-CSDN博客 题目描述说flag在/flag下 发现有上传点&#xff0c;上传一句话木马试试 文件…

解锁数据潜力:为什么你应该考虑使用向量数据库

文章目录 前言什么是向量和向量数据库使用示例Amazon OpenSearch Serverless向量引擎总结 前言 根据DC调查数据显示&#xff0c;全球在A1技术和服务上的支出2023年将达到1540亿美元&#xff0c;到2026年将超过3000亿美元。其中&#xff0c;向量数据库为AI的开发、增强内容生成…

保姆级jupyter lab配置清单

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

用嘉立创查找元件的原理图

目录 1.打开立创商城 2.搜索元件 ​编辑 3.复制编号 ​编辑 4.打开元件库 5.将复制好的编号进行搜索 1.打开立创商城 2.搜索元件 3.复制编号 4.打开元件库 5.将复制好的编号进行搜索