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

华为OD机试(C卷,200分)- 可以组成网络的服务器

题目描述

在一个机房中,服务器的位置标识在 n*m 的整数矩阵网格中,1 表示单元格上有服务器,0 表示没有。如果两台服务器位于同一行或者同一列中紧邻的位置,则认为它们之间可以组成一个局域网。
请你统计机房中最大的局域网包含的服务器个数。

输入描述

第一行输入两个正整数,n和m,0<n,m<=100
之后为n*m的二维数组,代表服务器信息

输出描述

最大局域网包含的服务器个数。

用例

输入 2 2
1 0
1 1
输出 3
说明 [0][0]、[1][0]、[1][1]三台服务器相互连接,可以组成局域网

题目解析

本题与leetcode200.岛屿数量不同之处在于统计的是最大局域网包含的服务器个数,而不是所有局域网个数。

方法一:深度优先搜索

本题可以用深度优先搜索DFS求解。
我们找到一个服务器后,即找到一个局域网。就再去其上下左右找下一个服务器,当找到新服务器,再递归去找其上下左右,按此逻辑,就像拔地瓜藤一样,一下子把所有地瓜都拔出来。而这就是深度优先搜索,即dfs。
为了避免重复统计,我们将统计过的服务器位置的值从1变为0。
用ans统计每个局域网包含的服务器个数,每找到一个局域网包含的服务器个数大于当前局域网,则更新ans。

#include <stdio.h>
#include <stdlib.h>
int dfs(int** grid,int x,int y,int row,int col){if(x<0||y<0||x>=row||y>=col||grid[x][y]==0)return 0;grid[x][y]=0;return 1+dfs(grid,x-1,y,row,col)+dfs(grid,x+1,y,row,col)+dfs(grid,x,y-1,row,col)+dfs(grid,x,y+1,row,col);}
int numIslands(int** grid, int gridSize, int* gridColSize) {if(gridSize==0||grid==NULL)return 0;int ans=0;for(int i=0;i<gridSize;i++

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Sparksql array相关函数
  • gin-vue-admin框架遇到AxiosError:Network Error怎么解决?
  • redis--分布式锁(1)
  • Python(模块---pandas+matplotlib+pyecharts)
  • Apache OFBiz 曝出严重漏洞,允许预身份验证 RCE
  • 第一篇Linux介绍
  • 如何调整 PDF 文件大小
  • 【OpenCV C++20 学习笔记】拉普拉斯(Laplace)二阶求导-边缘检测
  • 【游戏引擎之路】登神长阶(九)——《3D游戏编程大师技巧》:我想成为游戏之神!
  • 【JavaEE精炼宝库】网络原理基础——UDP详解
  • QT实现一个系统参数管理窗口
  • 深入理解单元测试与JUnit:从基础概念到实践操作
  • 计算机网络408考研 2014
  • 解密RCE漏洞:原理剖析、复现与代码审计实战
  • Android.mk(TODO)
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • ES6核心特性
  • Hibernate【inverse和cascade属性】知识要点
  • JavaScript学习总结——原型
  • Mocha测试初探
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • node 版本过低
  • node-glob通配符
  • PHP的类修饰符与访问修饰符
  • rabbitmq延迟消息示例
  • Shadow DOM 内部构造及如何构建独立组件
  • 机器学习 vs. 深度学习
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 漂亮刷新控件-iOS
  • 首页查询功能的一次实现过程
  • 写给高年级小学生看的《Bash 指南》
  • ​ArcGIS Pro 如何批量删除字段
  • #define
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #pragma multi_compile #pragma shader_feature
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (八)Spring源码解析:Spring MVC
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (七)理解angular中的module和injector,即依赖注入
  • (转)http协议
  • (转)四层和七层负载均衡的区别
  • .apk 成为历史!
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .net8.0与halcon编程环境构建
  • .NET项目中存在多个web.config文件时的加载顺序
  • .NET序列化 serializable,反序列化