自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1376)
  • 收藏
  • 关注

原创 华为校招&实习&留学生机试真题目录+算法分类+在线OJ+通过率+视频讲解

全网最新最全华为校招&实习&留学生机试真题题库

2024-10-18 10:57:57 2770 2

原创 机试真题目录

**2024年8月份,华为官方已经将华为OD机考:OD统一考试(D卷)切换到 OD统一考试(E卷)** 。从参加过华为OD笔试的朋友来看,**E卷的新题非常少,大部分是A,B,C,D卷的合并题库。** 另一方面据考生反应需要双机位,也就是在牛客小程序中一直点确认,最后一步需要调试并开启您的摄像头。

2023-11-30 14:28:44 55225 24

原创 【2025年华为暑期实习-7月9日-第三题(300分)- 无线网络覆盖计划】(题目+思路+Java&C++&Python解析+在线测试)

这篇文章解析了一个无线网络覆盖优化问题,要求用最小预算选择接入点以满足区域覆盖需求。摘要如下: 该问题是一个0-1背包变形,需要选择若干接入点,在预算内最大化覆盖面积。每个接入点有覆盖范围和成本两个属性,目标是在满足最小覆盖需求的前提下使总成本最小。解题核心是动态规划:使用一维数组dp记录不同预算下能获得的最大覆盖面积,通过倒序遍历保证每个接入点只选一次。由于成本和预算都是10的倍数,可以预先缩放数值以优化计算效率。最后扫描dp数组寻找满足覆盖需求的最小预算。若无法满足则输出0。文章给出了C++、Pytho

2025-07-09 21:06:32 172

原创 【2025年华为暑期实习-7月9日-第二题(200分)- 故障路径查询】(题目+思路+Java&C++&Python解析+在线测试)

题目要求处理网络路由图中故障边对业务路径的影响。给定n个节点和m条边的无向图,业务从源点s到汇点t。需要处理q次故障,每次故障导致某条边失效。关键步骤是:(1)预先枚举所有s到t的简单路径并按边序列字典序编号;(2)对每条边记录哪些路径经过它;(3)故障查询时直接输出受影响路径编号。解题思路是:通过排序邻接表边编号来保证DFS按字典序遍历,在找到完整路径时记录路径编号,并维护每条边对应的路径列表。最终查询时只需输出故障边对应的路径编号列表即可。代码实现采用DFS遍历和预处理策略,C++和

2025-07-09 21:06:22 30

原创 【2025年华为暑期实习-7月9日-第一题(100分)- 优化器个数】(题目+思路+Java&C++&Python解析+在线测试)

本文提出了一种贪心算法来解决光伏板优化器安装问题。给定一个由0(空位)和1(光伏板)组成的数组,要求在空位安装最少优化器使得每个光伏板至少有一个相邻优化器。算法从左到右遍历,优先在光伏板右侧空位安装优化器(可同时覆盖当前和下一个光伏板),若右侧不可行则选择左侧。若无法满足则返回-1。该方法时间复杂度为O(N),空间复杂度为O(N),保证了最优解。代码实现包括C++、Python和Java版本,通过标记数组跟踪已覆盖光伏板和已安装优化器位置来高效解决问题。

2025-07-09 21:06:11 52

原创 【2025年华为暑期实习(留学生)-6月25日-第三题(300分)- 命令关键字统计】(题目+思路+Java&C++&Python解析+在线测试)

文章摘要 本文探讨了一种统计命令行配置格式中必选关键字最小出现次数的方法。题目给出了嵌套的命令格式定义,包含必选分支{}和可选分支[]。通过构建语法树并递归计算每个节点的最小出现次数来处理这种嵌套结构。对于必选分支,取所有分支中关键字的出现次数最小值;对于可选分支,则视为可以选择不出现。最终输出按字母排序的必选关键字及其最小出现次数。该方法采用递归下降解析和动态计算,能有效处理任意深度的嵌套命令格式。

2025-06-26 22:20:03 259

原创 【2025年华为暑期实习(留学生)-6月25日-第二题(200分)- 连通网络节点和】(题目+思路+Java&C++&Python解析+在线测试)

本文摘要:题目要求分析由权重唯一的节点组成的无向连通网络,计算各连通网络的权重总和,并输出权重最大的连通网络中权重最大节点及其网络权重。解决思路包括:1) 建立节点索引和邻接表;2) 使用DFS/BFS遍历连通分量;3) 记录每个分量的权重和与最大节点;4) 比较并输出最优结果。示例代码提供了C++、Python和Java三种语言的实现方案,核心是通过深度优先搜索遍历连通分量并维护最大值。

2025-06-26 22:19:48 42

原创 【2025年华为暑期实习(留学生)-6月25日-第一题(100分)- 多段数据下发】(题目+思路+Java&C++&Python解析+在线测试)

本文摘要: 题目要求实现一个算法配置管理系统,处理配置下发和删除操作。系统维护一个区间数据库,支持两种操作:1)配置操作将新区间与现有区间合并为不可再分的连续区间;2)删除操作移除与给定区间重合的部分。输入包含若干操作行,输出最终合并后的区间集合,按升序排列且单元素区间简化为数字。例如样例1输入"algorithm 1-10,15-20"和"algorithm 5-11"后输出合并结果"1-11,15-20"。解题需实现区间解析、合并及删除逻辑,最

2025-06-26 22:18:57 41

原创 【2025年华为暑期实习-6月25日-第三题(300分)- 无线网络设备覆盖区域数量】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 题目要求计算办公园区无线网络子网间的光纤连接数量。给定一个由0和1组成的矩阵(1表示接入点),相邻接入点构成子网。需统计所有子网两两互连所需的光纤链路数,即若存在k个子网,则需k*(k-1)/2条链路。采用DFS或BFS遍历矩阵,标记连通区域,统计子网数量后计算组合数即可。 样例1:4×5矩阵中有2个子网,需1条链路。 样例2:2×2矩阵仅1个子网,无需链路。 解法: 遍历矩阵,对每个未访问的接入点进行DFS/BFS,标记连通区域。 统计子网数量k,返回k*(k-1)/2。时间复杂度O(mn),空间

2025-06-25 21:16:38 153

原创 【2025年华为暑期实习-6月25日-第二题(200分)- 变量生命周期计算】(题目+思路+Java&C++&Python解析+在线测试)

摘要:题目模拟了Rust语言中变量的生命周期管理机制,要求根据输入代码处理变量的声明(drop)与销毁(drop)操作。程序需要按照后进先出顺序自动销毁未手动drop的变量,并处理两种错误情况:销毁未声明变量或重复销毁变量。输入包含代码行数、作用域块和变量操作,输出应为变量的销毁顺序或在出错时输出已销毁变量后加"Error"。关键点在于管理嵌套作用域中的变量生命周期和正确处理错误情况。

2025-06-25 21:16:27 31

原创 【2025年华为暑期实习-6月25日-第一题(100分)- 最长滑雪长度】(题目+思路+Java&C++&Python解析+在线测试)

这道题目要求在一个给定高度矩阵中找到最长的严格递减路径,即滑行路径只能从高到低移动且不能重复访问已走过的格子。我们可以使用动态规划与深度优先搜索(DFS)结合的方法来解决这个问题。以下是简要思路和解决方案:方法思路动态规划定义:使用二维数组 dp,其中 dp[i][j] 表示从格子 (i,j) 出发的最长滑雪路径长度。DFS + 记忆化:对于每个格子,从四个方向探索相邻格子,若相邻格子高度严格更低,则递归计算该格子的最长路径,并更新当前格子的 dp 值。

2025-06-25 21:16:14 134

原创 【2025年华为暑期实习(留学生)-6月18日-第三题(300分)- VIP用户优先转发】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 题目要求实现VIP用户的MAC地址白名单匹配机制,在网络拥塞时优先调度匹配的流量。VIP用户MAC地址以"xx-xx-xx-xx-xx-xx/M"格式配置,其中M表示掩码长度(0-48)。需要处理n条VIP配置和m个查询MAC地址,判断每个查询地址是否匹配任意VIP前缀。 解决方案是将MAC地址转换为48位整数,根据掩码长度建立分层哈希集合(按不同掩码长度分类存储前缀值)。对于每个查询地址,只需检查其与所有存在的掩码长度对应的前缀集合是否有匹配即可,避免了暴力遍历。该算法通过预处

2025-06-19 21:07:26 130

原创 【2025年华为暑期实习(留学生)-6月18日-第二题(200分)- 最大营业额】(题目+思路+Java&C++&Python解析+在线测试)

这道题目要求在小吃节期间选择连续的若干天,使得这些天的总人力不超过$K$的条件下,总营业额最大化。我们可以使用滑动窗口(双指针)技术来高效解决这一问题。

2025-06-19 21:04:39 35

原创 【2025年华为暑期实习(留学生)-6月18日-第一题(100分)- 数组切割】(题目+思路+Java&C++&Python解析+在线测试)

题目要求将一个长整数分割为两部分,分别能被给定整数a和b整除,且两部分都不含前导零。解决方案如下: 预处理余数数组:计算前缀余数数组(pref),记录字符串每个前i位对a的余数;计算后缀余数数组(suf),记录字符串每个后缀对b的余数。 寻找分割点:从右向左遍历字符串,优先考虑较大前缀。对于每个可能的分割点i,检查: 前缀pref[i]能否被a整除 后缀suf[i]能否被b整除 右半部分首字符是否为'0' 输出结果:若找到满足条件的分割点,输出YES和两部分数字;否则输出NO。 该算法使用线性时间预处理和线

2025-06-19 21:00:42 31

原创 【2025年华为暑期实习-6月18日-第三题(300分)- 网络连接拒绝执行数】(题目+思路+Java&C++&Python解析+在线测试)

本文摘要: 该问题要求处理网络设备的互斥连接问题,给定N台设备(编号0到N-1)和一组M个互斥设备(互斥设备之间不能直接或间接相连)。需要按顺序处理X条连接指令,若执行某条指令会导致互斥设备相连,则拒绝执行并计数。最终输出被拒绝的指令总数。 解决方案使用并查集(Union-Find)来维护设备间的连通性。互斥设备所在的根节点被标记为"blocked"。对于每条指令,检查连接的两个设备是否会导致不同blocked根节点合并,若是则拒绝执行,否则合并两设备所属的连通分量。算法时间复杂度约为O

2025-06-18 23:17:18 246

原创 【2025年华为暑期实习-6月18日-第二题(200分)- 版本选择】(题目+思路+Java&C++&Python解析+在线测试)

摘要 本文介绍了云化平台中组件版本管理的规则与实现。平台采用语义版本控制(major.minor.patch),支持三种依赖声明方式:*(最新版本)、^major.minor.patch(同主版本最大版本)、~major.minor.patch(同主次版本最大补丁版本)。程序解析输入版本号后,根据声明规则筛选符合条件的最大版本,最终输出时省略尾部零。解决方案涉及版本号标准化、三元组比较和格式化输出等关键步骤。

2025-06-18 23:13:18 27

原创 【2025年华为暑期实习-6月18日-第一题(100分)- 变换子数组最大和】(题目+思路+Java&C++&Python解析+在线测试)

文章摘要: 题目要求在一个整数数组中,通过最多一次选取任意连续子数组取反的操作后,找到最大可能的连续子数组和。该问题可通过动态规划高效解决,将状态划分为三种情况:未取反(dp0)、正在取反(dp1)和已取反(dp2)。状态转移方程为:dp0保持常规最大子数组和计算;dp1考虑对当前元素取反,可从dp0或dp1转移;dp2表示取反结束,可从dp1或dp2转移。算法时间复杂度O(n),空间复杂度O(1)。示例代码展示了C++、Python和Java三种语言的实现。

2025-06-18 23:08:35 34

原创 【2025年华为暑期实习(留学生)-6月11日-第三题(300分)- 命令行参数提示】(题目+思路+Java&C++&Python解析+在线测试)

本文讨论如何通过计算字符串的编辑距离来改进命令行工具的用户体验。当用户输入错误的命令时,系统会根据最短莱文斯坦距离(允许替换、插入、删除操作)从候选命令中找出最相似的命令进行提示。 解题方法包括: 使用动态规划计算用户输入与每个候选命令的编辑距离 匹配优先级:先检查完全匹配,再筛选距离在阈值内的候选 对候选命令按距离和字典序排序后输出 时间复杂度为O(N×L²),其中N是命令数量,L是命令长度。空间复杂度可优化为O(L)。 示例代码展示了Python和Java的实现,核心是编辑距离的DP计算和候选排序逻辑。

2025-06-14 16:49:54 28

原创 【2025年华为暑期实习(留学生)-6月11日-第二题(200分)- 迷宫最短路径】(题目+思路+Java&C++&Python解析+在线测试)

这是一个迷宫最短路径问题,使用BFS算法求解。题目包含虫洞传送机制(穿越不消耗步数)。算法步骤包括:1)预处理记录起点、终点和虫洞配对;2)BFS遍历,处理常规移动和虫洞传送;3)首次到达终点即为最短路径。时间复杂度和空间复杂度均为O(mn)。代码实现包括Python和Java版本,主要处理方向移动、虫洞传送和访问标记等逻辑。无法到达终点时返回-1。

2025-06-14 16:48:42 30

原创 【2025年华为暑期实习(留学生)-6月11日-第一题(100分)- 园游会】(题目+思路+Java&C++&Python解析+在线测试)

题目摘要: 这是一个气球分组算法问题,要求将一串不同颜色的气球划分成尽可能多的片段,且相同颜色的气球必须在同一组。划分后的片段需按原顺序连接,返回每个片段长度的列表。例如输入"abcdeabl"可划分为"abcdeab"和"l",输出[7,1]。 解题思路:采用贪心算法,先记录每个字符最后出现的位置,然后遍历字符串维护当前分片的最远端点,当遍历位置等于端点时即完成一个分片。时间复杂度O(n),空间复杂度O(1)。提供了Python、Java和C++

2025-06-14 16:46:24 40

原创 【2025年华为暑期实习-6月11日-第三题(300分)- 最大的矩形新游戏】(题目+思路+Java&C++&Python解析+在线测试)

题目要求在直方图中交换任意两个矩形一次后,求能勾勒出的最大矩形面积。关键思路如下: 先计算不交换时通过单调栈求得的原始最大面积; 通过"移除短板"策略,尝试合并相邻区间提升面积; 通过构造"最大值连续区间"策略,利用全局最大值扩展矩形宽度。最终取三种情况最大值作为答案。主要使用单调栈、ST表预处理区间最值和双指针技术,时间复杂度O(n log n)。例如样例1交换后前4项形成面积12的矩形。

2025-06-11 21:16:20 126

原创 【2025年华为暑期实习-6月11日-第二题(200分)- 网络整改】(题目+思路+Java&C++&Python解析+在线测试)

题目摘要 给定一棵以节点1为根的树形网络,要求移除最少数量的节点,使得剩余网络中所有边缘设备(叶子节点)到根节点的距离相同。输入包含节点数n和若干条边关系,输出最少移除的节点数。 通过计算各节点深度并动态规划分析不同目标深度下的最大保留节点数,最终确定最优解。算法时间复杂度为O(n^2),适用于n≤5000的规模。

2025-06-11 21:14:04 58

原创 【2025年华为暑期实习-6月11日-第一题(100分)- 物流运输】(题目+思路+Java&C++&Python解析+在线测试)

本题要求计算物流运输车完成所有运输任务的最短行驶路程。运输车需要从总部出发,收取所有寄件货物后返回总部扫描,再送达所有收件地址后返回总部。关键在于将任务分为两个阶段:收件阶段和送件阶段,每个阶段的最短路径等同于从根节点出发遍历所有目标节点后返回的最优路径。 解题思路: 构建树结构,以1号节点为根,预处理父节点和拓扑排序。 统计每个节点及其子树中的寄件点和收件点数量。 后序遍历节点,将子树的计数累加到父节点。 遍历所有非根节点,若其子树中存在寄件点或收件点,则累加对应边的权重。 总路程为收件和送件阶段路程之和

2025-06-11 21:11:42 49

原创 【2025年美团暑期实习(算法岗)- 5月31日-第四题(400分)- 小美的激光打印机】(题目+思路+Java&C++&Python解析+在线测试)

摘要:题目要求计算激光打印机按最优顺序打印多个封闭图形的最短时间。每个图形需选择起始点并以给定速度绘制,打印完毕后返回初始点。解法包括:1)计算各图形周长;2)枚举所有处理顺序;3)动态规划确定每步最佳起始点;4)总时间为绘制时间与移动时间之和。通过动态规划优化路径选择,确保时间最短。时间复杂度为O(n!×m^2),其中n为图形数量,m为顶点数。

2025-06-01 22:48:42 54

原创 【2025年美团暑期实习(算法岗)- 5月31日-第三题(300分)- 小美的素数数组】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 题目要求将给定序列通过合并相邻元素的操作(合并后为两者之和),使得最终序列所有元素都是素数,求不同的最终序列形态数目。使用动态规划求解:预处理素数表,计算前缀和,定义dp[i]为前i个元素的分割方案数。枚举所有可能的分割点j,若子段和为素数则累加dp[j]到dp[i]。时间复杂度为O(n^2)每组数据,总复杂度可接受。结果对10^9+7取模。

2025-06-01 22:47:25 34

原创 【2025年美团暑期实习(算法岗)- 5月31日-第二题(200分)- 市场篮子分析系统】(题目+思路+Java&C++&Python解析+在线测试)

本文摘要: 实现了一个基于关联规则的市场篮子分析系统,用于发现频繁商品组合。系统读取交易数据后,通过枚举所有商品对并计算支持度(出现频率),筛选出支持度≥0.5的频繁商品对。输出按支持度降序排列的三元组(商品1,商品2,支持度),支持度保留两位小数。示例输入包含5笔交易,输出("bread","butter",0.6)表示该组合在60%的交易中出现。系统采用组合枚举、计数统计和阈值筛选算法,适用于零售业商品关联分析场景。

2025-06-01 22:46:10 42

原创 【2025年美团暑期实习(算法岗)- 5月31日-第一题(100分)- 小美数组“数数”】(题目+思路+Java&C++&Python解析+在线测试)

本文提出了一种算法,用于统计数组遍历过程中的正向和逆向传送次数。首先将数组元素与下标配对并按值排序,然后遍历排序后的相邻元素对,比较下标变化方向:若后一下标更大则记为正向传送,否则为逆向传送。该方法通过排序和线性扫描实现,时间复杂度为O(n log n),适用于大规模数据。样例验证表明,对于升序数组输出正向传送次数,降序数组则输出逆向传送次数。

2025-06-01 22:44:34 61

原创 【2025年华为暑期实习-5月28日-第三题(300分)- 爬山线路规划】(题目+思路+Java&C++&Python解析+在线测试)

摘要 本题要求计算从山底到山峰的最少移动次数,给定山的高度地图和攀爬能力值。使用广度优先搜索(BFS)算法,按照以下步骤解决: 定位关键点:找到唯一高度为0的山底起点和最高高度的山峰终点。 BFS搜索:从起点出发,每次移动时检查相邻格子是否满足高度差不超过攀爬能力值。 终止条件:到达终点时返回步数,若队列耗尽仍未到达则返回-1。 算法时间复杂度为O(N×M),适用于网格规模较大的情况。代码实现使用队列管理待访问节点,并通过访问数组避免重复计算,确保高效性。

2025-05-28 21:08:44 159

原创 【2025年华为暑期实习-5月28日-第二题(200分)- 游园线路】(题目+思路+Java&C++&Python解析+在线测试)

题目要求设计一条从指定入口到指定出口的最短游园路线。景点以邻接矩阵表示距离,需要处理多解时按字典序排序。解题思路是采用Dijkstra算法计算最短路径,同时维护路径序列以便在距离相同时选择字典序最小的路线。算法实现包括初始化距离和路径、优先队列处理邻接点、松弛更新距离和路径等步骤。最终输出经过优化后的最短路径序列。该解法能正确处理不同规模的输入,并满足题目要求的多个条件。

2025-05-28 21:08:34 62

原创 【2025年华为暑期实习-5月28日-第一题(100分)- 找到通信质量最高的基站】(题目+思路+Java&C++&Python解析+在线测试)

题目摘要: 给定一条有N个路口的马路,每个路口设有一个通信基站,第i个基站的信号覆盖范围为[i-k, i+k]。用户应选择覆盖范围内接入人数最少的基站进行通讯。要求计算小明从0号路口出发,在每个路段(i到i+1号路口之间)的最佳基站编号。 输入: 第一行为各路口基站的接入人数数组。 第二行为基站覆盖范围k。 输出: 返回每个路段的最佳基站编号数组。若输入非法,返回-1。 关键点: 每个路段i的最佳基站需在[i-k+1, i+k]范围内选择接入人数最少的基站。 使用滑动窗口技术高效查找最小值。 处理边界条件,

2025-05-28 21:08:24 287

原创 【2025年得物暑期实习-5月25日-第三题(300分)- 障碍路径计数】(题目+思路+Java&C++&Python解析+在线测试)

题目要求计算在n×n网格中,从左上角(1,1)到右下角(n,n)的路径数,其中有两个障碍物不能经过,且只能向下或向右移动。 解题思路:使用动态规划,定义dp[i][j]表示从起点到(i,j)的路径数。状态转移方程为:若(i,j)是障碍物则dp[i][j]=0;否则dp[i][j]=(dp[i-1][j] + dp[i][j-1]) mod 998244353。边界条件为第一行和第一列的特殊处理。 复杂度分析:时间复杂度O(n²),空间复杂度O(n²)。实现时需注意障碍物标记和边界条件处理。 示例结果:如输入

2025-05-26 15:36:30 424

原创 【2025年得物暑期实习-5月25日-第二题(200分)- 数字循环移动】(题目+思路+Java&C++&Python解析+在线测试)

摘要 该题目描述了一种数字循环移动的操作过程。初始时编号为i的格子存放数字i,随后对每个x(1到n),将所有编号为x倍数的格子中的数字循环右移一位。例如,x=3时,3号格子数字移动到6号,6号移动到9号,依此类推,最后一位移动到3号。最终需输出每个格子的数字。直接模拟该过程的时间复杂度为O(n log n),适用于n≤10^5的情况。示例输入5的输出为5 3 2 1 4,输入8的输出为8 7 3 5 4 2 6 1。

2025-05-26 15:35:13 28

原创 【2025年得物暑期实习-5月25日-第一题(100分)- 机械臂攀岩】(题目+思路+Java&C++&Python解析+在线测试)

摘要 题目要求计算从地面(0号点)恰好到达第n个踩踏点的最少机械臂使用次数,并输出字典序最小的攀登方案。每次使用机械臂可上升1至m个点。最少次数k为⌈n/m⌉。构造方案时,初始设每次上升m点,总距离为k×m,需要减少S=k×m-n的距离。为使字典序最小,优先减少前面的步长:每次最多减少min(S,m-1),保证步长≥1。最终输出k次操作的调整后步长序列。该算法每组数据时间复杂度为O(k),适用于给定约束条件。

2025-05-26 15:33:51 36

原创 【2025年携程暑期实习 - 5月22日 -第三题(300分)- 分割数组】(题目+思路+Java&C++&Python解析+在线测试)

题目要求将一个长度为 $n$ 的数组 $a$ 分割成两个非空数组 $b$ 和 $c$,以最小化 $|f(b) - g(c)|$,其中 $f(b)$ 是 $b$ 中所有元素的和,$g(c)$ 是 $c$ 中所有元素的按位或值。通过枚举所有可能的分割点,计算每个分割点对应的 $|f(b) - g(c)|$,并取最小值。具体实现中,使用前缀和数组 $pre$ 来快速计算 $f(b)$,使用后缀或数组 $suf$ 来快速计算 $g(c)$。时间复杂度为 $O(n)$,空间复杂度为 $O(n)$。

2025-05-23 19:56:39 149

原创 【2025年携程暑期实习 - 5月22日 -第二题(200分)- 最小化数组权值】(题目+思路+Java&C++&Python解析+在线测试)

给定一个长度为n的数组{a1,a2,…,ana 1​ ,a 2​ ,…,a n​ },定义数组的权值为数组所有元素之和。你可以执行任意次以下操作,以使数组权值最小化:选择两个索引 ii 和 jj ;任意选取两个正整数 xx 和 yy ,但需满足 gcd(x,y)=gcd(ai,aj)gcd(x,y)=gcd(a i​ ,a j​ );将 ai←x,ai←ya i​ ←

2025-05-23 19:55:37 116

原创 【2025年携程暑期实习 - 5月22日 -第一题(100分)- 字符距离】(题目+思路+Java&C++&Python解析+在线测试)

题目要求计算三个小写字母 $a, b, c$ 到字母 $p$ 之间的距离之和。距离定义为字母表中 $p$ 到每个字母之间相差的字母数量,且字母表是线性的,‘$a$’和‘$z$’不相邻。输入包含多组测试数据,每组数据给出三个字母 $a, b, c$ 和字母 $p$,输出计算得到的距离和。 解题思路: 将字母映射到数字位置,$a$ 对应 1,$b$ 对应 2,依此类推。 计算两个字母 $x$ 和 $y$ 之间的距离,公式为 $|pos(x) - pos(y)| - 1$,若结果为负数则取 0。 对每组数据,计算

2025-05-23 19:54:03 37

原创 【2025年华为暑期实习(留学生)-5月21日-第三题(300分)- 爬山路线规划】(题目+思路+Java&C++&Python解析+在线测试)

本文介绍了如何通过广度优先搜索(BFS)算法解决登山员从山底到山峰的最短路径问题。给定一个表示山的地图的二维数组,其中每个元素代表该位置的高度,登山员每次只能向上下左右移动一格,且移动时的高度差不能超过其攀爬能力值。通过BFS,我们可以找到从山底(高度为0的唯一坐标)到山峰(最高高度的唯一坐标)的最少移动次数。如果无法到达山峰,则返回-1。文章详细描述了算法的实现步骤,并提供了Python和Java的代码示例。

2025-05-23 19:52:05 436

原创 【2025年华为暑期实习(留学生)-5月21日-第二题(200分)- 找到通信质量最高的基站】(题目+思路+Java&C++&Python解析+在线测试)

文章摘要 题目描述了一条马路上的通信基站覆盖问题。每个基站的信号覆盖范围为前后各$k$个路口,用户手机应选择连接人数最少的基站进行通讯。给定长度为$N$的数组crossroads[],表示每个路口基站的接入人数,以及覆盖范围$k$,要求输出小明在每个路段中的最佳通讯基站编号。解题思路采用滑动窗口和单调队列的方法,通过维护窗口内的最小值来快速查询最佳基站。时间复杂度为$O(N)$,空间复杂度为$O(N)$。代码实现包括Python和Java版本,处理了非法输入并输出结果。

2025-05-23 19:50:09 365

原创 【2025年华为暑期实习(留学生)-5月21日-第一题(100分)- 虚拟货币挖矿算力匹配】(题目+思路+Java&C++&Python解析+在线测试)

在虚拟货币挖矿系统中,矿工的算力值$n$需要被分配到一个“稳定算力档”,该档位的算力值必须满足以下条件:1. 小于等于$n$;2. 算力值的数位之和为质数;3. 算力值的每一位数字从左到右不递减。若不存在符合条件的算力档,则返回$-1$。解题思路包括将$n$转为字符串,通过贪心算法和回溯逐位构造符合条件的最大算力值,并利用质数预处理和可行性剪枝优化搜索过程。最终,算法在$O(1)$级别复杂度内找到符合条件的算力档或返回$-1$。

2025-05-23 19:48:50 66

原创 【2025年华为暑期实习-5月21日-第三题(300分)- 云计算服务器GPU分配】(题目+思路+Java&C++&Python解析+在线测试)

该问题要求云计算服务商在有限的GPU核数资源下,选择与哪些客户签约以最大化租金收益。服务商提供分时租用服务,客户在不同时间段按需租用GPU核数,每个核数单位时间的费用为R。服务商需确保在任何时间单位内分配的GPU核数不超过总资源M,同时选择签约客户以满足其所有时间段的需求。

2025-05-21 21:11:46 379

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除