题目描述
给你一个由 ‘H’(陆地)和 ‘S’(湖泊)组成的的二维网格,请你计算网格中湖泊的数量。
岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。
此外,你可以假设该网格的四条边均被水包围。
- 示例 1:
- 输入
4 5
SSSSH
SSHSH
SSHHH
HHHHH - 输出
1
- 输入
- 示例 2:
- 输入:
4 5
SSHHH
SSHHH
HHSHH
HHHSS - 输出
3
- 输入:
解释: 每座岛屿只能由水平和/或竖直方向上相邻的陆地连接而成。
分析
深度优先搜索
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] s = sc.nextLine().trim().split(" ");
int r = Integer.parseInt(s[0]);
int c = Integer.parseInt(s

这篇博客回顾了LeetCode第200题的解决方案,使用Java实现深度优先搜索(DFS)来计算二维网格中湖泊的数量。题目要求湖泊由水平或竖直相邻的陆地连接,且四周被水包围。文中详细分析了DFS算法的时间复杂度和空间复杂度,并给出了示例解释。
最低0.47元/天 解锁文章
776

被折叠的 条评论
为什么被折叠?



