华为OD机试真题——报文回路(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

article/2025/8/22 18:25:17

在这里插入图片描述

2025 A卷 100分 题型

本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式;
并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析;
本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分享》

华为OD机试真题《报文回路》:


文章快捷目录

题目描述及说明

Java

python

JavaScript

C

GO


题目名称:报文回路


  1. 知识点:图论(邻接表遍历)、逻辑处理
  2. 时间限制:1秒
  3. 空间限制:256MB
  4. 限定语言:不限

题目描述

IGMP协议中,响应报文和查询报文是维系组播通路的两个重要报文。在已建立的组播通路中,相邻的HOST和ROUTER之间,ROUTER会向HOST发送查询报文,HOST收到后需回复响应报文以维持连接。若双向报文缺失,则通路异常。现给定抓取的报文列表,判断组播通路是否正常。

输入描述

  • 第一行:报文数量C(C ≤ 100)。
  • 后续C行:每行两个设备节点D1和D2,表示D1到D2的单向报文(空格分隔)。

输出描述

  • 通路正常输出True,否则输出False

示例
输入:

5  
1 2  
2 3  
3 2  
1 2  
2 1  

输出:

True  

Java

问题分析

我们需要判断组播通路是否正常。组播通路的正常条件是:所有相邻设备的双向报文必须存在。即,对于每一条存在的 D1→D2 的报文,必须存在对应的 D2→D1 的报文。


解题思路

  1. 输入解析:读取所有报文,存储为边列表,并构建邻接表。
  2. 邻接表构建:用 Map 记录每个节点到其相邻节点的集合。
  3. 双向检查:遍历所有边,检查其反向边是否存在。
  4. 结果判定:若所有边的反向边均存在,返回 True,否则 False

代码实现

import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int C = scanner.nextInt(); // 读取报文数量List<int[]> edges = new ArrayList<>(); // 存储所有报文边Map<Integer, Set<Integer>> adjacencyMap = new HashMap<>(); // 邻接表// 读取所有报文并构建邻接表for (int i = 0; i < C; i++) {int D1 = scanner.nextInt();int D2 = scanner.nextInt();edges.add(new int[]{D1, D2}); // 存储边adjacencyMap.computeIfAbsent(D1, k -> new HashSet<>()).add(D2); // 记录D1→D2}// 遍历所有边,检查反向边是否存在boolean isValid = true;for (int[] edge : edges) {int D1 = edge[0];int D2 = edge[1];// 检查D2→D1是否存在if (!adjacencyMap.containsKey(D2) || !adjacencyMap.get(D2).contains(D1)) {isValid = false;break;}}System.out.println(isValid ? "True" : "False");}
}

代码详解

  1. 输入处理

    • C 表示报文数量,后续读取 C 条边。
    • edges 列表存储所有输入的边(例如 [D1, D2])。
    • adjacencyMap 是邻接表,键为起始节点,值为所有可达节点的集合。
  2. 邻接表构建

    • adjacencyMap.computeIfAbsent(D1, k -> new HashSet<>()).add(D2);:若 D1 不存在于邻接表,创建空集合,然后将 D2 添加到集合中。
  3. 双向检查

    • 遍历所有边 edge,检查反向边 D2→D1 是否存在。
    • adjacencyMap.containsKey(D2):检查 D2 是否有出边。
    • adjacencyMap.get(D2).contains(D1):检查 D2 的出边是否包含 D1
  4. 结果输出

    • 若所有边的反向边均存在,输出 True,否则输出 False

示例测试

示例1
输入:

5
1 2
2 3
3 2
1 2
2 1

输出&#x


http://www.hkcw.cn/article/YtAbeOVKBy.shtml

相关文章

CPP中CAS std::chrono 信号量与Any类的手动实现

前言 CAS&#xff08;Compare and Swap&#xff09; 是一种用于多线程同步的原子指令。它通过比较和交换操作来确保数据的一致性和线程安全性。CAS操作涉及三个操作数&#xff1a;内存位置V、预期值E和新值U。当且仅当内存位置V的值与预期值E相等时&#xff0c;CAS才会将内存位…

20250529-C#知识:索引器

C#知识&#xff1a;索引器 索引器给对象添加了索引访问的功能&#xff0c;实际访问的是对象的成员&#xff0c;感觉不太常用。 1、主要内容及代码示例 索引器中类似属性&#xff0c;也包含get和set方法索引器能够使像访问数组一样访问对象一般当类中有数组类型的成员变量时&am…

芭莎明星怼脸照,卡粉眼袋眼角纹真实却美丽,看完再也没有容貌焦虑 女星状态更胜一筹

今年的时尚芭莎盛典异常热闹。原本以为这又是一次明星们展示美貌的机会,但这次芭莎玩了个新花样,用“镜头签”将明星的真实皮肤状态暴露在公众面前。于是,“没去芭莎的很幸运了”这个词条冲上了热搜。这次的生图简直成了“照妖镜”。男星的表现可以说不尽如人意。张云龙依旧…

订单已排至2029年!我国造船产业订单量领跑全球

订单已排至2029年!我国造船产业新接订单量领跑全球在当前复杂的全球贸易形势下,我国造船产业依旧表现出强劲的市场韧性与竞争力,走出了产业加速度,今年1-4月,我国造船产业新接订单量占世界市场份额继续保持全球第一。眼下,很多造船企业的订单饱满,生产任务也排至了几年之…

Maven-生命周期

目录 1.项目对象模型 2.依赖管理模型 3.仓库&#xff1a;用于存储资源&#xff0c;管理各种jar包 4.本地仓库路径 1.项目对象模型 2.依赖管理模型 3.仓库&#xff1a;用于存储资源&#xff0c;管理各种jar包 4.本地仓库路径

Nacos

注册发现各种第三方组件的比较介绍&#xff1a; CAP C&#xff1a;一致性 A&#xff1a;可用性 P&#xff1a;分区容错性 启动nacos Linux环境&#xff1a;找到startup.sh&#xff0c;编辑文件将启动模式从集群cluster模式修改为单机模式standalone&#xff0c;如下图 然…

苹果公司计划按年份来重命名重大的软件,将升级iOS 18软件至iOS 26

苹果公司计划从今年开始&#xff0c;所有苹果操作系统将统一采用年份标识&#xff0c;而非此前混乱的版本号体系。苹果将在6月9日的全球开发者大会上正式宣布这一变革。周三截至发稿&#xff0c;苹果股价震荡微涨0.46%&#xff0c;重回3万亿美元市值。 苹果公司正在筹划其操作…

How to Initiate Back-to-Back Write Transactions from Master

Q: How to Initiate Back-to-Back Write Transactions from Master A: following are the modification required at master end to achieve back-to-back transaction driving the VIP: constraint all the master relevant delays to ‘0’ during transaction randomizatio…

纵览网丨新视角下的黑洞探索:传统奇点理论的挑战与未来观测的可能性

纵览网&#xff08;www.zonglan.com&#xff09;在宇宙的浩瀚无垠中&#xff0c;黑洞一直以其神秘莫测的特性吸引着人类的目光。从爱因斯坦的广义相对论到现代天文学的观测成果&#xff0c;黑洞的研究不断取得突破&#xff0c;但同时也伴随着无数未解之谜。其中&#xff0c;传统…

冯彬实现女子铁饼亚锦赛三连冠 中国田径再添辉煌

韩国当地时间5月29日晚,2025年亚洲田径锦标赛结束了第三个比赛日的争夺。女子铁饼决赛中,中国选手冯彬凭借最后一投的61米90顺利夺得金牌,并实现了个人的亚锦赛三连冠。这也是中国田径队连续12届摘得女子铁饼项目的亚锦赛金牌。31岁的冯彬此前曾获得2022年俄勒冈世锦赛金牌和…

4.1.4 基于数据帧做SQL查询

在本节实战中&#xff0c;我们探讨了如何基于Spark DataFrame执行SQL查询。首先&#xff0c;我们学习了如何通过createOrReplaceTempView方法将DataFrame注册为一个临时视图&#xff0c;以便在SQL查询中使用。接着&#xff0c;我们使用spark.sql方法执行了各种SQL查询&#xff…

DUBBO介绍

1.1 DUBBO简介 Dubbo是Alibaba开源的分布式服务框架&#xff0c;致力于提供高性能和透明化的RPC远程服务调用方案&#xff0c;以及SOA服务治理方案。它最大的特点是按照分层的方式来架构&#xff0c;使用这种方式可以使各个层之间解耦合&#xff08;或者最大限度地松耦合&…

这个西部城市登顶全国消费第一城 重庆连续超越上海

这个西部城市登顶全国消费第一城 重庆连续超越上海!重庆的消费数据再次超过了上海。根据重庆市统计局的数据,1-4月,重庆社会消费品零售总额达到5385.43亿元,同比增长4.4%。同期,上海的社会消费品零售总额为5355.46亿元,同比下降0.3%。这意味着重庆成为当前中国消费总额最…

solidworks报错-只有合并特征才能被阵列。如果恰当,请选择实体的阵列

当我想要阵列这个特征的时候出现了如下报错&#xff0c;报错提示我使用实体的阵列&#xff0c;但这明显不合适&#xff0c;因为我在创建特征的时候已经合并了特征所以只有一个实体&#xff0c;有一个不算聪明的解决方法 重新退回特征创建阶段&#xff0c;取消合并结果 这样设计…

【加密社】私钥碰撞工具 最新版

最近有很多朋友问我能不能做一款针对指定地址进行爆破的工具 【指定地址进行碰撞】 当然可以做。 这里要说明的是&#xff0c;私钥碰撞工具的概率是非常非常非常非常小的&#xff0c;几乎无限趋近于0的几率&#xff0c;除非你是天选之子。 &#xff08;但是这里我还是做了一…

基于React和TypeScript的金融市场模拟器开发与模式分析

基于React和TypeScript的金融市场模拟器开发与模式分析 项目概述 本项目开发了一个基于React和TypeScript的金融市场模拟器&#xff0c;通过模拟订单流和价格发现机制&#xff0c;重现了真实市场的动态特性。该模拟器不仅提供了实时价格图表、订单簿和交易功能&#xff0c;还…

进程控制与调度下

内核总控程序返回调度程序 这个点 可剥夺的调度 实现多个进程轮流运行 真正的变发运行 短进程优先问题:后面就是不断来短进程的 长进程就没法运行 优化来了:最高响应比优先法 例子:io等待太久 然后给他cpu 运行完一个时间片 然后降低优先级 给其他进程运行 Linux和window…

高精度厚金 PCB 技术白皮书:参数标准、应用案例及猎板 PCB 解决方案

一、厚金 PCB 线路板技术参数与工艺原理 厚金 PCB 通过脉冲电镀工艺在导体表面形成高纯度金层&#xff0c;核心参数需满足严苛工业标准。以猎板 PCB 的技术方案为例&#xff0c;金层厚度通常控制在 1.2-2.5μm&#xff08;典型值 1.8μm0.15μm&#xff09;&#xff0c;底层沉…

生成式人工智能重塑商业价值:从任务分解到战略跃迁的全景解析

引言 生成式人工智能&#xff08;GenAI&#xff09;正通过任务分解框架重塑商业价值&#xff0c;其核心在于精准定位“增强”与“自动化”的结合点&#xff0c;而非全盘替代人类工作。基于布林乔尔森的经济学模型&#xff0c;企业可拆解岗位任务&#xff0c;评估GenAI在效率提…

数据结构(7)树-二叉树-堆

一、树 1.树的概述 现实生活中可以说处处有树。 在计算机里&#xff0c;有一种数据结构就是像现实中的树一样&#xff0c;有根&#xff0c;有分支&#xff0c;有叶子&#xff1b;一大片树就叫做森林。 这些性质抽象到计算机里也叫树&#xff0c;大致长这个样子&#xff1a; …