news 2026/2/25 13:44:42

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/2/8 18:49:47

torch 操作函数

torch.multinomial torch.multinomial 用于从多项分布中采样。给定一个包含概率的张量&#xff0c;该函数会根据这些概率返回采样的索引。适用于需要根据概率分布进行随机选择的场景&#xff0c;例如在强化学习中根据策略选择动作。 输入是一个概率分布张量&#xff0c;每个元素…

作者头像 李华
网站建设 2026/2/14 9:48:14

23、PHP编程与相关技术全解析

PHP编程与相关技术全解析 1. PHP基础操作与数据获取 在PHP编程中,对于日志条目的操作是一个常见场景。首先,会将日志条目的ID号存储在 $id 变量中。接着,会进行条件判断,如果存在ID号且该ID号大于0,程序会执行一系列操作。具体步骤如下: 1. 连接到服务器。 2. 选择…

作者头像 李华
网站建设 2026/2/24 16:13:14

46、使用容器更新和管理 SQL Server:全面指南

使用容器更新和管理 SQL Server:全面指南 1. 使用容器更新 SQL Server 在 RHEL 上更新 Linux 版 SQL Server 到新的累积更新时,通常会运行 sudo yum update mssql-server 命令。此命令会下载最新累积更新,关闭 SQL Server,应用新二进制文件,然后重新启动 SQL Server。…

作者头像 李华
网站建设 2026/2/25 6:08:28

k8s-应用部署和组件及常用命令(2)

、相关组件介绍&#xff1a;node是k8s的集群节点&#xff0c;和实际的机器对应pod是应用容器&#xff0c;不同的应用部署在不同的pod中&#xff0c;k8s协调资源&#xff0c;将pod部署到集群中的node节点上&#xff08;非master节点&#xff09;。同时pod又是挂在namespace下面的…

作者头像 李华
网站建设 2026/2/24 7:00:19

【后端】【Java】一文深入理解 Spring Boot RESTful 风格接口开发

深入理解 Spring Boot RESTful 风格接口开发一、什么是 RESTful&#xff1f;RESTful 是一种基于 REST&#xff08;Representational State Transfer&#xff0c;表述性状态转移&#xff09; 架构风格的 Web 接口设计规范。在 RESTful 风格中&#xff1a;一切皆资源通过 URL 表示…

作者头像 李华