news 2026/7/12 1:58:40

LeetCode:深度优先搜索DFS

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode:深度优先搜索DFS

200.岛屿数量

给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。

岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。

此外,你可以假设该网格的四条边均被水包围。

示例 1:

输入:grid = [
[‘1’,‘1’,‘1’,‘1’,‘0’],
[‘1’,‘1’,‘0’,‘1’,‘0’],
[‘1’,‘1’,‘0’,‘0’,‘0’],
[‘0’,‘0’,‘0’,‘0’,‘0’]
]
输出:1

【思路】
递归思想;

  1. 先遍历网格,若元素为’1’则可以以此点展开dfs操作;
  2. dfs操作:深度优先搜索过程中将搜索到的’1’都写为‘0’;
  3. 这样!岛屿的数量其实就是遍历过程中找到’1’的次数!
classSolution{public:voiddfs(vector<vector<char>>&grid,intr,intc){intnr=grid.size();intnc=grid[0].size();if(grid[r][c]=='0')return;grid[r][c]='0';if(r+1<nr&&grid[r+1][c]=='1')dfs(grid,r+1,c);if(r-1>=0&&grid[r-1][c]=='1')dfs(grid,r-1,c);if(c+1<nc&&grid[r][c+1]=='1')dfs(grid,r,c+1);if(c-1>=0&&grid[r][c-1]=='1')dfs(grid,r,c-1);}intnumIslands(vector<vector<char>>&grid){intnr=grid.size();if(!nr)return0;intnc=grid[0].size();intnum_islands=0;for(intr=0;r<nr;r++){for(intc=0;c<nc;c++){if(grid[r][c]=='1'){num_islands++;dfs(grid,r,c);}}}returnnum_islands;}};

695.岛屿的最大面积

与上同理

classSolution{public:intdfs(vector<vector<int>>&grid,intr,intc){intnr=grid.size();intnc=grid[0].size();if(grid[r][c]==0)return0;intsum=grid[r][c];grid[r][c]=0;//记得置0!不然会stack-overflow!if(r+1<nr&&grid[r+1][c]==1)sum+=dfs(grid,r+1,c);if(r-1>=0&&grid[r-1][c]==1)sum+=dfs(grid,r-1,c);if(c+1<nc&&grid[r][c+1]==1)sum+=dfs(grid,r,c+1);if(c-1>=0&&grid[r][c-1]==1)sum+=dfs(grid,r,c-1);returnsum;}intmaxAreaOfIsland(vector<vector<int>>&grid){intnr=grid.size();if(!nr)return0;intnc=grid[0].size();intres=0;for(intr=0;r<nr;r++){for(intc=0;c<nc;c++){if(grid[r][c]==1){res=max(dfs(grid,r,c),res);}}}returnres;}};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/12 1:58:35

PLC-IoT 技术解析:基于 IEEE 1901.1 协议实现 99.999% 可靠性的 3 大关键

PLC-IoT 技术深度解析&#xff1a;工业级高可靠通信的三大核心技术在工业物联网领域&#xff0c;通信可靠性是系统设计的生命线。想象一下城市交通信号灯因通信中断导致路口瘫痪&#xff0c;或是工厂生产线因数据传输延迟造成设备碰撞——这些场景对通信技术提出了近乎苛刻的要…

作者头像 李华
网站建设 2026/7/12 1:57:39

Kimi K2.5+Claude Code双AI协同开发实战:重构支付对账服务

1. 项目概述&#xff1a;这不是一场“模型对比测评”&#xff0c;而是一次真实开发场景下的工具链压力测试“Kimi K2.5 Claude Code 实测”——看到这个标题&#xff0c;你大概率会以为这是一篇常规的AI模型横向评测&#xff1a;跑几个基准测试、比一比代码生成准确率、贴几张响…

作者头像 李华
网站建设 2026/7/12 1:57:21

工业负载控制:TPD2017FN与PIC18F4680实战解析

1. 工业负载控制的特殊挑战在工业自动化现场&#xff0c;负载控制从来不是简单的开关操作。我曾在一条汽车零部件装配线上遇到这样的场景&#xff1a;每当电磁阀关闭时&#xff0c;临近的PLC就会莫名其妙地重启。经过三天排查&#xff0c;最终发现是感性负载产生的反峰电压通过…

作者头像 李华
网站建设 2026/7/12 1:56:33

Win10黑屏重启0xc000009c错误:DISM/SFC卡死全面解决方案

今天我们来详细分析一个典型的 Windows 10 系统故障&#xff1a;开机进入桌面后出现黑屏闪烁&#xff0c;随后电脑自动重启&#xff0c;并显示 0xc000009c 内存报错。即使在安全模式下&#xff0c;使用 DISM 修复工具也会卡在 22%&#xff0c;SFC 系统文件检查器则卡在 35%&…

作者头像 李华
网站建设 2026/7/12 1:56:25

Postman 桌面版 v11 安装路径自定义与 3 种数据同步策略详解

Postman v11 高级部署指南&#xff1a;跨平台安装路径定制与数据同步策略深度解析 1. 跨平台安装路径定制方案 对于系统管理员和DevOps工程师而言&#xff0c;标准化开发工具部署是基础架构管理的重要环节。Postman默认安装行为往往无法满足企业级环境对磁盘空间管控和合规性…

作者头像 李华