当前位置: 首页 > news >正文

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

前言

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


习题

tips:板子题就不分析了

1.网格图中鱼的最大数目

题目链接:2658. 网格图中鱼的最大数目 - 力扣(LeetCode)

题面:

代码:

class Solution {int[][] grid;int n,m;int flag[][];int flag2;int ans = 0;public int findMaxFish(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]>0&&flag[i][j]==0){flag2 = 0;recursion(i,j);ans = Math.max(ans,flag2);}}}return ans;}public void recursion(int x,int y){flag[x][y] = 1;flag2+=grid[x][y];if(x+1<n&&grid[x+1][y]>0&&flag[x+1][y]==0){recursion(x+1,y);}if(y+1<m&&grid[x][y+1]>0&&flag[x][y+1]==0){recursion(x,y+1);}if(x-1>=0&&grid[x-1][y]>0&&flag[x-1][y]==0){recursion(x-1,y);}if(y-1>=0&&grid[x][y-1]>0&&flag[x][y-1]==0){recursion(x,y-1);}}
}

2.边界着色

题目链接:1034. 边界着色 - 力扣(LeetCode)

题面:

代码:

class Solution {int[][] grid;int color;int n,m;int[][] flag;public int[][] colorBorder(int[][] grid, int row, int col, int color) {this.grid = grid;this.color = color;n = grid.length;m = grid[0].length;flag = new int[n][m];recursion(row,col);return grid;}public void recursion(int x,int y){flag[x][y] = 1;int flag2 = 0;if(x+1<n){if(grid[x+1][y]==grid[x][y]&&flag[x+1][y]==0){recursion(x+1,y);}if(grid[x+1][y]!=grid[x][y]&&flag[x+1][y]==0){flag2 =1;}}if(x-1>=0){if(grid[x-1][y]==grid[x][y]&&flag[x-1][y]==0){recursion(x-1,y);}if(grid[x-1][y]!=grid[x][y]&&flag[x-1][y]==0){flag2 =1;}}if(y-1>=0){if(grid[x][y-1]==grid[x][y]&&flag[x][y-1]==0){recursion(x,y-1);}if(grid[x][y-1]!=grid[x][y]&&flag[x][y-1]==0){flag2 =1;}}if(y+1<m){if(grid[x][y+1]==grid[x][y]&&flag[x][y+1]==0){recursion(x,y+1);}if(grid[x][y+1]!=grid[x][y]&&flag[x][y+1]==0){flag2 =1;}}// System.out.println(x+"       "+y+"       "+flag2);if(flag2==1||x==n-1||x==0||y==m-1||y==0){grid[x][y] =color;}}
}

后言

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

http://www.lryc.cn/news/504587.html

相关文章:

  • redis 架构详解
  • 多分类交叉熵与稀疏分类交叉熵
  • PHP 8新特性深度解析与实战应用
  • 【C语言】UDP通信
  • 用Keytool和OpenSSL生成和签发数字证书
  • 算法-动态数组-62.不同路径
  • Y3编辑器教程5:触发器进阶使用(镜头、UI、表格、函数库、排行榜、游戏不同步)
  • 基于小程序实现地图定位、轨迹绘制、地图标点、快捷导航、唤醒导航APP、开箱即用
  • JAVA后端实现全国区县下拉选择--树形结构
  • 数据结构速成
  • Electron-Vite 项目搭建(Vue)
  • 如何寻找和改进开源项目来作为个人简历项目
  • STEM真题 第五题 比 n 小的最大数
  • HuggingGPT Solving AI Tasks with ChatGPT and its Friends in Hugging Face 论文解读
  • 深入了解HTTPDNS-使用Python实现一个HTTPDNS服务
  • IDEA 可视化使用 git rebase 合并分支步骤 使git分支树保持整洁
  • 网络安全教学博客(二):常见网络安全威胁剖析
  • 区块链技术及应用(期末考试版)
  • Ubuntu22.04 docker如何发布镜像(和用git差不多)
  • 基于python绘制数据表(上)
  • 【机器学习】在向量的流光中,揽数理星河为衣,以线性代数为钥,轻启机器学习黎明的瑰丽诗章
  • Python PPT合并与拆分 – 详解
  • 舌头分割数据集labelme格式2557张1类别
  • LVS能否实现两台服务器的负载均衡
  • onlyoffice 容器配置修改后制作镜像导出以及上传到 dockerhub
  • Java常用 Date 时间格式化、Calender日历、正则表达式的用法
  • 案例讲解自然语言处理(NLP)
  • tryhackme——Pre Security(安检前)-Offensive Security(进攻性安全)
  • 2.python变量
  • 【工业机器视觉】基于深度学习的水表盘读数识别(4-训练与预测)