【DFS】200.岛屿数量

题目

法1:岛屿数量

java 复制代码
class Solution {
    public int numIslands(char[][] grid) {
        int m = grid.length, n = grid[0].length;
        int[][] used = new int[m][n];
        int res = 0;
        for (int i = 0; i < m; ++i) {
            for (int j = 0; j < n; ++j) {
                if (grid[i][j] == '0' || used[i][j] == 1) {
                    continue;
                }
                ++res;
                dfs(i, j, grid, used, m, n);
            }
        }

        return res;
    }

    public void dfs(int i, int j, char[][] grid, int[][] used, int m, int n) {
        if (i < 0 || i >= m 
                || j < 0 || j >= n 
                || grid[i][j] == '0' || used[i][j] == 1) {
            return;
        }
        used[i][j] = 1;

        dfs(i - 1, j, grid, used, m, n); 
        dfs(i + 1, j, grid, used, m, n);
        dfs(i, j - 1, grid, used, m, n); 
        dfs(i, j + 1, grid, used, m, n);
    }
}
相关推荐
手写码匠13 分钟前
华为云征文|DeepSeek-R1 智能问数 Agent 实战:Flexus X 实例 + Dify 构建企业级 Text-to-SQL 查询助手
人工智能·深度学习·算法·aigc
mifengxing37 分钟前
Java集合与泛型
java·算法·复习笔记
liulilittle1 小时前
[OPENPPP2] ssea 算法详解(中文)
算法·x86·x64·simd·openppp2·ssea·base94
碧海银沙音频科技研究院1 小时前
蓝牙耳机使用WSDF5361锂保芯片进入船运模式实现方法
嵌入式硬件·算法
过期的秋刀鱼!1 小时前
学习曲线-过拟合和欠拟合要做什么以及原因
人工智能·python·深度学习·算法·机器学习·模型评估
m沐沐1 小时前
【自然语言处理】词向量转换与中文文本情感分类——从CountVectorizer到朴素贝叶斯
人工智能·算法·机器学习·自然语言处理·分类·中文分词·词向量转换
sali-tec2 小时前
C# 基于OpenCv的视觉工作流-章99-换背景
图像处理·人工智能·opencv·算法·计算机视觉
科学实验家2 小时前
01背包问题
算法
普通攻击往后拉2 小时前
Leetcode 448. 找到所有数组中消失的数字
算法·leetcode·职场和发展
mifengxing2 小时前
LeetCode 189 轮转数组|3种解法拆解,从暴力到O(1)原地最优解
数据结构·算法·leetcode