力扣-图论-12【算法学习day.62】

news/2024/12/19 7:39:56/

前言

###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.岛屿数量

题目链接:200. 岛屿数量 - 力扣(LeetCode)

分析:使用flag标记已经搜过的1点,每找到一个1答案加一,然后用dfs将所有相邻的1标记

java">class Solution {char[][] grid;int[][] flag;int n,m;int ans = 0;public int numIslands(char[][] grid) {this.grid = grid;n = grid.length;m = grid[0].length;flag = new int[n][m];for(int i = 0;i<n;i++){for(int j = 0;j<m;j++){if(grid[i][j]=='1'&&flag[i][j]==0){ans++;recursion(i,j);}}}return ans;}public void recursion(int x,int y){flag[x][y] = 1;if(x+1<n&&grid[x+1][y]=='1'&&flag[x+1][y]==0){recursion(x+1,y);}if(x-1>=0&&grid[x-1][y]=='1'&&flag[x-1][y]==0){recursion(x-1,y);}if(y+1<m&&grid[x][y+1]=='1'&&flag[x][y+1]==0){recursion(x,y+1);}if(y-1>=0&&grid[x][y-1]=='1'&&flag[x][y-1]==0){recursion(x,y-1);}}
}

2.岛屿的最大面积

题目链接:695. 岛屿的最大面积 - 力扣(LeetCode)

题面:

分析:dfs 

代码:

java">class Solution {int[][] grid;int ans = 0;int n,m;int[][] flag;int flag2 = 0;public int maxAreaOfIsland(int[][] grid) {this.grid = grid;n = grid.length;m = grid[0].length;flag = new int[n][m];for(int i = 0;i<n;i++){for(int j = 0;j<m;j++){if(grid[i][j]==1&&flag[i][j]==0){flag2 = 1;recursion(i,j);ans = Math.max(ans,flag2);}}}return ans;}public void recursion(int x,int y){// System.out.println(x+"        "+y+"        "+count);// System.out.println(x+"        "+y+"        "+flag2);flag[x][y] = 1;if(x+1<n&&grid[x+1][y]==1&&flag[x+1][y]==0){flag2++;recursion(x+1,y);  }if(x-1>=0&&grid[x-1][y]==1&&flag[x-1][y]==0){flag2++;recursion(x-1,y);}if(y+1<m&&grid[x][y+1]==1&&flag[x][y+1]==0){flag2++;recursion(x,y+1);}if(y-1>=0&&grid[x][y-1]==1&&flag[x][y-1]==0){flag2++;recursion(x,y-1);}}
}

后言

上面是力扣图论专题,下一篇是其他的习题,希望有所帮助,一同进步,共勉!


http://www.ppmy.cn/news/1556335.html

相关文章

软件集成测试内容和作用简析

在现代软件开发过程中&#xff0c;软件集成测试作为关键的一环&#xff0c;日益受到重视。特别是随着信息技术的快速发展&#xff0c;各类软件系统日益庞大复杂&#xff0c;如何确保系统不同模块的顺畅合作&#xff0c;成为了每个项目成功的重要基础。集成测试是指在软件开发过…

etcd数据迁移

场景1 更换高性能盘 停掉etcd服务高性能盘上创建新的数据目录copy旧数据文件到新数据目录中修改配置文件的数据目录为新目录&#xff0c;然后重启服务 场景2 更换高性能物理机器&#xff0c;不停服切换 新的机器需要先安装好etcd服务先启动安装好的一台etcd&#xff0c;单独…

IOS通过WDA自动化中遇到的问题

IOS自动化遇到的问题 搭建WDA环境中遇到的问题1、XCode unsupport iphone xxx.2、创建Bundle Identifier出现问题&#xff1a;Communication with Apple failed3、创建Bundle Identifier出现问题&#xff1a;Automatic signing failed \Signing certificate is invalid4、创建B…

计算机网络第二章(物理层)课程复习

写在前面&#xff1a; 本文是对计算机网络课程的系统性复习&#xff0c;参考了课堂PPT、计算机网络&#xff08;第7版&#xff0c;谢希仁编著&#xff09;、王道考研B站公开课以及考研指导复习书。下图是物理层的学习内容&#xff0c;数据交换方式在第一章复习时就已经讲解完毕…

力扣-图论-14【算法学习day.64】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关键点&#xff0c;力扣上的大佬们的题解质量是非…

PHP代码审计学习(一)--命令注入

1、漏洞原理 参数用户可控&#xff0c;程序将用户可控的恶意参数通过php可执行命令的函数中运行导致。 2、示例代码 <?php echorec-test; $command ping -c 1 .$_GET[ip]; system($command); //system函数特性 执行结果会自动打印 ?> 通过示例代码可知通过system函…

如何评估并持续优化AI呼出机器人的使用效果

如何评估并持续优化AI呼出机器人的使用效果 作者&#xff1a;开源呼叫中心FreeIPCC 随着人工智能技术的发展&#xff0c;AI呼出机器人在企业中的应用越来越广泛。这些智能系统不仅提高了工作效率、降低了成本&#xff0c;还改善了客户体验。然而&#xff0c;要确保AI呼出机器…

【LeetCode每日一题】Leetcode 605.种花问题

Leetcode 605.种花问题 题目描述&#xff1a; 假设有一个很长的花坛&#xff0c;一部分地块种植了花&#xff0c;另一部分却没有。可是&#xff0c;花不能种植在相邻的地块上&#xff0c;它们会争夺水源&#xff0c;两者都会死去。 给你一个整数数组 flowerbed 表示花坛&…