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

【leetcode】200.岛屿数量(DFS入门)

实战总结

用char型接收整形int转化为的对应字符要小心 

 

int res;
char = res + '0';

 其中 res 的上限是127。

在下面这道题中,笔者一开始想将遍历过的位置更新值为 res + ‘0’,但当岛屿数过多的时候就溢出了,所以还是应该将遍历过的位置更新为‘0’即可

评价:典型的深度优先类型的题

class Solution {
private:
    int dir[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
public:
    int numIslands(vector<vector<char>>& grid) {
        if(grid.size() == 0 || grid[0].size() == 0) return 0;
        int res = 1;
        auto dfs = [&](auto& dfs, int i, int j) -> void {
            for(int k=0; k<4; k++)
            {
                int cur_i = i + dir[k][0];
                int cur_j = j + dir[k][1];
                if(cur_i<0 || cur_j<0 || cur_i>=grid.size()|| cur_j>=grid[0].size()) continue;
                if(grid[cur_i][cur_j] == '1')
                {
                    grid[cur_i][cur_j] = '0';
                    dfs(dfs, cur_i, cur_j);
                }                
            }       
        };
        for(int i=0; i<grid.size(); i++)
        {
            for(int j=0; j<grid[0].size(); j++)
            {
                if(grid[i][j] == '1')
                {
                    res++;
                    grid[i][j] = '0';
                    dfs(dfs, i, j);
                }
            }
        }
        return res - 1;
    }
};

 

 


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

相关文章:

  • 科技云报到:科技普惠潮流渐起,“开源”将带我们走向何方?
  • HTTP协议 (爬虫)
  • docker批量pull/save/load/tag/push镜像shell脚本
  • 【Unity URP】PBR框架下的NPR 角色渲染 以《少女前线2:追放》为例
  • MongoDB索引介绍
  • Visual Studio Code使用ai大模型编成
  • 关于视频去水印的一点尝试
  • [250217] x-cmd 发布 v0.5.3:新增 DeepSeek AI 模型支持及飞书/钉钉群机器人 Webhook 管理
  • centos部署open-webui
  • OpenCV图像基本操作
  • github上文件过大无法推送问题
  • 解压rar格式的软件有哪些?8种方法(Win/Mac/手机/网页端)
  • 华为昇腾 910B 部署 DeepSeek-R1 蒸馏系列模型详细指南
  • gradio创建openai前端对接deepseek等模型流式输出markdown格式文本
  • Windows 图形显示驱动开发-CPU 内存调节和64KB 页面支持
  • 力扣每日一题【算法学习day.127】
  • Python——寻找矩阵的【鞍点】(教师:恒风)
  • 接口测试及常用接口测试工具(Postman/Jmeter)
  • Linux学习笔记之虚拟地址空间
  • 【Linux】--- 信号阻塞、信号捕捉