news 2026/4/2 22:13:53

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/3/27 4:17:27

什么叫范式

范式的基本概念 范式&#xff08;Paradigm&#xff09;在多个学科中有不同含义&#xff0c;但通常指某一领域内被广泛接受的理论框架、方法论或思维模式。以下是不同学科中的具体定义&#xff1a; 计算机科学中的范式 在编程领域&#xff0c;范式指程序设计的基本风格或模式&am…

作者头像 李华
网站建设 2026/3/30 7:27:07

15、利用AWK进行日志数据处理与分析

利用AWK进行日志数据处理与分析 1. 从Web日志中展示数据 之前已经了解了如何使用AWK查看Apache Web服务器的日志文件,现在将使用内容更丰富多样的演示文件进行操作。 2. 按日期筛选条目 在掌握了如何显示日期后,接下来看看如何仅打印某一天的条目。可以使用AWK中的匹配运…

作者头像 李华
网站建设 2026/4/1 11:06:36

腾讯云智能体开发平台RAG模型商业化倒计时 核心功能12月10日起正式计费

腾讯云官方今日发布重要公告&#xff0c;宣布旗下智能体开发平台中的【RAG模型】服务即将结束体验阶段&#xff0c;将于2025年12月10日20时起正式启动商业化计费。这一调整标志着腾讯云在企业级AI应用服务领域的商业化进程迈出关键一步&#xff0c;也为依赖该平台构建智能应用的…

作者头像 李华
网站建设 2026/3/29 0:53:31

47、SQL Server在Mac和Kubernetes环境中的实践探索

SQL Server在Mac和Kubernetes环境中的实践探索 1. SQL Mac挑战 在2018年2月伦敦的SQLBits活动上,有人提出微软对MacBook社区支持不足的问题。演讲者自信回应,称可以在MacBook上无虚拟化、不使用Windows工具运行SQL Server,且能在5分钟内完成安装和启动,这就是“SQL Mac挑…

作者头像 李华