天津网站优化收费,厦门专业网站推广,WordPress不收录首页,微信客户端入口前言
###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程#xff08;例如想要掌握基础用法#xff0c;该刷哪些题#xff1f;#xff09;我的解析也不会做的非常详细#xff0c;只会提供思路和一些关键点#xff0c;力扣上的大佬们的题解质量是非…前言
###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程例如想要掌握基础用法该刷哪些题我的解析也不会做的非常详细只会提供思路和一些关键点力扣上的大佬们的题解质量是非常非常高滴 习题
1.水域大小
题目链接:面试题 16.19. 水域大小 - 力扣LeetCode
分析:简单的dfs
class Solution {int[][] land;int n,m;int[][] flag;ArrayListInteger list new ArrayList();int flag2 0;public int[] pondSizes(int[][] land) {this.land land;n land.length;m land[0].length;flag new int[n][m];for(int i 0;in;i){for(int j 0;jm;j){if(flag[i][j]0land[i][j]0){flag2 0;recursion(i,j);// System.out.println(------------------------);list.add(flag2);}}}flag2 0;int[] ans new int[list.size()];for(int a:list){ans[flag2] a;}Arrays.sort(ans);return ans;}public void recursion(int x,int y){// System.out.println(x y);flag[x][y] 1;flag2;if(x1nland[x1][y]0flag[x1][y]0){recursion(x1,y);}if(x-10land[x-1][y]0flag[x-1][y]0){recursion(x-1,y);}if(y1mland[x][y1]0flag[x][y1]0){recursion(x,y1);}if(y-10land[x][y-1]0flag[x][y-1]0){recursion(x,y-1);}if(x1ny1mland[x1][y1]0flag[x1][y1]0){recursion(x1,y1);}if(x1ny-10land[x1][y-1]0flag[x1][y-1]0){recursion(x1,y-1);}if(x-10y1mland[x-1][y1]0flag[x-1][y1]0){recursion(x-1,y1);}if(x-10y-10land[x-1][y-1]0flag[x-1][y-1]0){recursion(x-1,y-1);}}
} 2.主题空间
题目链接:LCS 03. 主题空间 - 力扣LeetCode
题面:
分析:dfs只不过多一些考虑情况
代码:
class Solution {int n,m;int ans 0;char[][] map;int[][] flag;int flag2 0;int islian 0;public int largestArea(String[] grid) {n grid.length;m grid[0].length();map new char[n][m];flag new int[n][m];int count 0;for(String str:grid){map[count] str.toCharArray();}for(int i 1;in-1;i){for(int j 1;jm-1;j){if(map[i][j]!0flag[i][j]0){flag2 0;islian 0;recursion(i,j,map[i][j]);if(islian0){ans Math.max(ans,flag2);}}} }return ans;}public void recursion(int x,int y,char u){flag2;flag[x][y] 1;if(x0||xn-1||y0||ym-1)islian 1;if(x1n){if(map[x1][y]uflag[x1][y]0){recursion(x1,y,u);}if(map[x1][y]0)islian1;}if(x-10){if(map[x-1][y]uflag[x-1][y]0){recursion(x-1,y,u);}if(map[x-1][y]0)islian 1;}if(y1m){if(map[x][y1]uflag[x][y1]0){recursion(x,y1,u);}if(map[x][y1]0)islian 1;}if(y-10){if(map[x][y-1]uflag[x][y-1]0){recursion(x,y-1,u);}if(map[x][y-1]0)islian 1;}}
} 后言
上面是力扣图论专题下一篇是其他的习题希望有所帮助一同进步共勉