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

Leetcode Hot100 81-85

dfs框架代码

void dfs(int[][] grid, int r, int c) {
    // 判断 base case
    if (!inArea(grid, r, c)) {
        return;
    }
    // 如果这个格子不是岛屿,直接返回
    if (grid[r][c] != 1) {
        return;
    }
    grid[r][c] = 2; // 将格子标记为「已遍历过」
    
    // 访问上、下、左、右四个相邻结点
    dfs(grid, r - 1, c);
    dfs(grid, r + 1, c);
    dfs(grid, r, c - 1);
    dfs(grid, r, c + 1);
}

// 判断坐标 (r, c) 是否在网格中
boolean inArea(int[][] grid, int r, int c) {
    return 0 <= r && r < grid.length 
        	&& 0 <= c && c < grid[0].length;
}

思路:遇到陆地就ans+1,然后把周围的陆地都变为海洋 

class Solution {
    public int numIslands(char[][] grid) {
        int ans = 0;
        for (int i = 0; i < grid.length; i++) {
            for (int j = 0; j < grid[0].length; j++) {
                if(grid[i][j]=='1'){
                    dfs(grid,i,j);
                    ans++;
                }
            }
        }
        return ans;
    }
    public void dfs(char[][]grid,int i,int j){
        if(i<0||i>grid.length-1||j<0||j>grid[0].length-1||grid[i][j]=='0'){
            return;
        }
        grid[i][j] = '0';
        dfs(grid, i+1, j);
        dfs(grid, i-1, j);
        dfs(grid, i, j+1);
        dfs(grid, i, j-1);
    }
}


http://www.kler.cn/a/541388.html

相关文章:

  • 基于 GEE 利用插值方法填补缺失影像
  • RocketMQ、RabbitMQ、Kafka 的底层实现、功能异同、应用场景及技术选型分析
  • Linux进阶——web服务器
  • 采用分步式无线控制架构实现水池液位自动化管理
  • 卷积神经网络CNN如何处理语音信号
  • 第一财经对话东土科技 | 探索工业科技新边界
  • 企业AI招聘会在2025年出现爆炸式增长吗?
  • Node.js笔记入门篇
  • 【从零开始入门unity游戏开发之——C#篇54】C#补充知识点——元组(Tuple)
  • 【SpringBoot实现全局API限频】 最佳实践
  • AWS Savings Plans 监控与分析工具使用指南
  • 开源AI终端工具Wave Terminal从安装到远程连接内网服务器全流程攻略
  • 深度整理总结MySQL——MySQL加锁工作原理
  • 【图片转换PDF】多个文件夹里图片逐个批量转换成多个pdf软件,子文件夹单独合并转换,子文件夹单独批量转换,基于Py的解决方案
  • 安卓基础(第一集)
  • 嵌入式音视频开发(一)ffmpeg框架及内核解析
  • hive数仓的分层与建模
  • 食品饮料生产瓶颈?富唯智能协作机器人来 “破壁”
  • 使用 DeepSeek 进行图像描述:多模态 AI 技术实践
  • 【Linux】Linux命令:crontab
  • SpringBoot和Spring主要区别
  • React Vite 项目增加 eslint 和 prettier
  • 【网络法医】基线取证和常见反取证技术
  • 【DeepSeek】Deepseek辅组编程-通过卫星轨道计算终端距离、相对速度和多普勒频移
  • Ajax-介绍
  • 深度学习|表示学习|Layer Normalization 全面总结|24