news 2026/5/25 0:27:16

12.13 - 岛屿数量 C语言中extern关键字的作用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
12.13 - 岛屿数量 C语言中extern关键字的作用

目录

1.岛屿数量

a.核心思想

b.思路

c.步骤

2.C语言中extern关键字的作用


1.岛屿数量

200. 岛屿数量 - 力扣(LeetCode)https://leetcode.cn/problems/number-of-islands/description/

class Solution { public: void dfs(vector<vector<char>>& grid, int r, int c) { int nr = grid.size(); int nc = grid[0].size(); // 检查边界条件和是否为陆地 if (r < 0 || c < 0 || r >= nr || c >= nc || grid[r][c] == '0') { return; } // 标记当前陆地为已访问(置为'0') grid[r][c] = '0'; // 递归访问相邻的四个方向 dfs(grid, r - 1, c); // 上 dfs(grid, r + 1, c); // 下 dfs(grid, r, c - 1); // 左 dfs(grid, r, c + 1); // 右 } int numIslands(vector<vector<char>>& grid) { if (grid.empty() || grid[0].empty()) return 0; int nr = grid.size(); // 行数 int nc = grid[0].size(); // 列数 int count = 0; // 岛屿计数 for (int r = 0; r < nr; ++r) { for (int c = 0; c < nc; ++c) { if (grid[r][c] == '1') { ++count; dfs(grid, r, c); } } } return count; } };

a.核心思想

利用深度优先搜索(DFS)或广度优先搜索(BFS)来遍历二维网格,将相邻的陆地标记为已访问,每次遇到新的未访问的陆地就表示发现一个新的岛屿。

b.思路

遍历二维网格中的每一个点,当遇到陆地(值为'1')且未被访问过时,启动 DFS 或 BFS 来标记所有与之相连的陆地为已访问,同时岛屿数量加 1。

c.步骤

① 初始化一个与网格大小相同的二维数组visited来记录每个点是否被访问过,或者直接修改原网格来标记已访问(将访问过的陆地置为'0')。

② 遍历二维网格,对于每个点:如果该点是陆地且未被访问过,进行 DFS 或 BFS 遍历所有相连的陆地并标记为已访问,同时岛屿数量加 1。

③ 返回岛屿数量。

2.C语言中extern关键字的作用

在C语言中,extern关键字用于声明变量或函数为外部链接,表示该变量/函数的定义在其他编译单元(如另一个源文件)中,当前文件仅引用它。其核心作用是解决跨文件的全局符号访问问题,不分配内存,仅声明存在性。

希望这些内容对大家有所帮助!

感谢大家的三连支持!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 7:17:28

【Java数组】--告别困惑快速掌握数组

个人主页 文章目录 前言&#xff1a;1. 数组是什么1.1 数组的特性1.2 数组的内部结构1.3 数组的分类1.4 数组与集合的区别 2. 数组的定义2.1 数组的数学概念2.2 数组的索引机制2.3 数组的边界概念 3. 数组的声明与创建3.1 数组的声明方式3.2 声明与初始化的时机3.3 数组的创建3…

作者头像 李华
网站建设 2026/5/22 18:03:12

13、AWK与正则表达式:数据处理与文本匹配的强大工具

AWK与正则表达式:数据处理与文本匹配的强大工具 1. AWK命令基础 AWK是一个强大的数据处理工具,可用于从文件中过滤和显示内容,尤其适用于处理大文件。我们可以先打印整个文件,以熟悉命令语法,之后再将控制信息添加到AWK文件中,简化命令行操作。 打印整个文件 :使用以…

作者头像 李华
网站建设 2026/5/22 13:05:13

一文吃透随机森林:原理剖析+C++实战实现

哈喽&#xff0c;各位C开发者朋友&#xff01;今天咱们聚焦机器学习领域中经典的集成学习算法——随机森林。它凭借出色的泛化能力、抗过拟合特性以及对非线性数据的适配性&#xff0c;在分类、回归任务中都有着广泛应用&#xff0c;也是面试中的高频考点。这篇文章会从基础原理…

作者头像 李华
网站建设 2026/5/22 5:00:08

地图着色问题:核心原理与 C++ 代码实现

一、核心问题&#xff1a;一句话秒懂地图着色的核心需求很简单&#xff1a;给地图上的所有区域着色&#xff0c;确保相邻区域&#xff08;有公共边界&#xff0c;非点接触&#xff09;颜色不同&#xff0c;同时使用最少的颜色。关键结论&#xff08;四色定理&#xff09;&#…

作者头像 李华
网站建设 2026/5/24 0:25:41

AI伦理风险与治理体系构建 守护技术向善之路

人工智能的飞速发展在推动社会进步的同时&#xff0c;也催生了一系列伦理风险&#xff0c;数据泄露、算法偏见、责任认定难题等问题逐渐凸显&#xff0c;对社会公平和个体权益构成挑战。如何防范伦理风险&#xff0c;构建科学有效的治理体系&#xff0c;引导AI技术“向善”发展…

作者头像 李华
网站建设 2026/5/24 16:01:33

无须激活,安装即是Pro版!

软件介绍 Wise Care 365是一款专业的Windows系统垃圾清理软件电脑清理工具&#xff0c;软件正版是收费的。 而今天给大家推荐Wise Care 365的两个版本&#xff0c;一个是绿色单文件版本&#xff0c;一个是最新的官方赠品&#xff0c;两版都免费。 第一款&#xff1a;绿色单文…

作者头像 李华