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

server/2024/12/20 19:59:34/

前言

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


习题

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/server/151771.html

相关文章

题目 3010: 奇偶数之和

题目 3010: 奇偶数之和 时间限制: 2s 内存限制: 192MB 提交: 3298 解决: 2005 题目描述 利用循环&#xff0c;分别输出1∼n之间的所有奇数的和、偶数的和。 输入格式 输入n 输出格式 输出为一行&#xff0c;两个数(用一个空格隔开)&#xff0c;偶数之和与奇数之和。 样例输入 1…

python实现视频切分图片

python脚本 import os import subprocess from tkinter import * import tkinter.messagebox import tkinter as tkdef videoCut(video_path,fps):# 获取当前工作路径</

快速解决oracle 11g中exp无法导出空表的问题

在一些生产系统中&#xff0c;有些时候我们为了进行oracle数据库部分数据的备份和迁移&#xff0c;会使用exp进行数据的导出。但在实际导出的时候&#xff0c;我们发现导出的时候&#xff0c;发现很多空表未进行导出。今天我们给出一个快速解决该问题的办法。 一、问题复现 我…

系列5:基于Centos-8.6 Kubernetes master节点允许运行pod节点

每日禅语 不识本心&#xff0c;内心不定&#xff0c;心就会随物转&#xff1b;倘若能了知自己的心&#xff0c;动静如一&#xff0c;那么万象万物都可以随心而转。净心才能入定&#xff0c;从而摆脱外物的牵绊&#xff1b;心不因外物而动才能真正认清自己&#xff0c;遇到顺境不…

Android 获取屏幕物理尺寸

注&#xff1a;编译 sdk 需要使用 30 因为引入了 WindowMetrics、uild.VERSION_CODES.R 新 sdk 才存在的类和属性 某些场景处理 view &#xff0c;对 view 显示的位置要求比较精确&#xff0c;通常我们使用context.getResources().getDisplayMetrics().widthPixels 获取到的宽、…

淘系商品评论json数据示例参考,API接口系列

以下是一个淘系商品评论的JSON数据示例&#xff0c;以及如何使用相关API接口的简要说明&#xff1a; JSON数据示例 {"status": "success","message": "评论数据获取成功","data": {"product_id": "1234567…

设计模式-读书笔记

确认好&#xff1a; 模式名称 问题&#xff1a;在何时使用模式&#xff0c;包含设计中存在的问题以及问题存在的原因 解决方案&#xff1a;设计模式的组成部分&#xff0c;以及这些组成部分之间的相互关系&#xff0c;各自的职责和协作方式&#xff0c;用uml类图和核心代码描…

【HarmonyOS】获取设备自定义名字

【HarmonyOS】获取设备自定义名字 一、问题背景 应用开发中我们经常需要拿到设备名称&#xff0c;非设备的品牌名称。例如&#xff0c;meta 60 Pro这种。而是用户自定义的设备名称。 但是鸿蒙针对用户信息的保护非常严格。想拿到设备名称&#xff0c;通过常规的DeviceInfo接…