塔子哥学算法
这个作者很懒,什么都没留下…
展开
-
华为校招&实习&留学生机试真题目录+算法分类+在线OJ+通过率+视频讲解
全网最新最全华为校招&实习&留学生机试真题题库原创 2024-10-18 10:57:57 · 475 阅读 · 0 评论 -
【2024年华为秋招(留学生)-10月24日-第三题(300分)-服务器训练任务调度】(题目+思路+Java&C++&Python解析+在线测试)
如果多个训练任务的优先级相同,优先执行训练时间长的任务。团队申请了一组服务器,用于机器学习训练,为了充分利用资源,需要你来完成任务调度算法的实现。现在需要根据服务器和训练任务,计算完成所有训练任务的总时间。当空闲服务器充足时,可以同时执行不同优先级的训练任务。个训练任务,不同优先级的任务可以同时执行。,分别表示对应任务的训练时间和优先级,的任务执行完毕,执行剩余的一个任务。的任务执行完毕,没有未执行的任务。的任务执行完毕,没有未执行的任务。的任务执行完毕,继续执行优先级为。,表示空闲服务器的数量,原创 2024-10-24 19:10:09 · 22 阅读 · 0 评论 -
【2024年华为秋招(留学生)-10月24日-第二题(200分)-序列化热点调用栈树】(题目+思路+Java&C++&Python解析+在线测试)
调用栈指从主函数执行到某个函数的调用路径,如 AAA->BBB ,经过这条调用栈到达的其他调用栈称为其子调用栈,如 AAA->BBB->DDD 是 AAA->BBB 的子调用栈;使用某性能分析工具对软件运行过程中的调用栈进行采样分析,得到的热点调用栈数据为树形结构。树的每个节点代表一条调用栈,子节点为父节点的子调用栈,每个节点有一个数值为采样到该调用栈的样本数量。现需要刷新各节点的数值为包含其子调用栈的总样本数量,请编码实现。数的层序遍历,指的是从上到下遍历每层,每层从左到右遍历各节点;为了标识子节点关系,原创 2024-10-24 19:08:53 · 24 阅读 · 0 评论 -
【2024年华为秋招(留学生)-10月24日-第一题(100分)-集装箱堆叠】(题目+思路+Java&C++&Python解析+在线测试)
对于每一个集装箱,尝试将其放置在一个已经存在的堆垛上,要求该堆垛的当前高度不超过该集装箱的标号(即可以在其上方再放置当前集装箱)。对于每一个集装箱,尝试将其放置在一个已经存在的堆垛上,要求该堆垛的当前高度不超过该集装箱的标号(即可以在其上方再放置当前集装箱)。将所有箱子按照升序排序,用一个多重集合来存储当前有的集装箱的高度,对于每一个集装箱记为。:对于当前集装箱,寻找一个堆垛,其高度是小于或等于该集装箱标号的最大值。将所有箱子按照升序排序,用一个多重集合来存储当前有的集装箱的高度,对于每一个集装箱记为。原创 2024-10-24 19:06:37 · 25 阅读 · 0 评论 -
【2024年华为秋招-10月23日-第一题(100分)-栈溢出判断】(题目+思路+Java&C++&Python解析+在线测试)
给定函数的栈大小和调用关系,判断程序是否会发生栈溢出,并输出相关信息,包括是否溢出、触发溢出的调用路径(如果有)、以及栈的最大消耗。给定输入,第一个调用关系为A BC,则A为入口函数,先执行A-B-D调用,对应占空间为45,当执行到A-C-E时,超过了70,触发了栈溢出。该示例中,最大占空间配置为100,可以调用完所有函数,不会发生栈溢出,最大调用栈调用关系为A-C-F,消耗的最大栈空间为85。代码运行过程,经常会出现栈溢出情况,现给定函数调用关系和每个函数的栈大小,判断该程序是否存在栈溢出的风险。原创 2024-10-23 22:13:04 · 48 阅读 · 0 评论 -
【2024年华为秋招-10月23日-第二题(200分)-村落基站建设】(题目+思路+Java&C++&Python解析+在线测试)
假设村落以二叉树的形状分布,我们需要选择在哪些村落建设基站。如果某个村落建设了基站,那么它和它相邻的村落(包括本节点、父节点和子节点)都会有信号覆盖。假设村落二叉树形状分布,我们要选择在哪些村落建设基站。如果某个村落建设了基站,那么它和它相邻的村落(本节点、父节点,子节点)也会有信号覆盖。通过将节点存储在数组中,方便访问父节点和子节点。使用完全二叉树的数组形式表示,从左到右,从上到下遍历,中,表示从根节点开始的覆盖情况。计算出最少需要建设的基站数。计算出最少需要建设的基站数。:使用数组表示完全二叉树,原创 2024-10-23 22:11:12 · 55 阅读 · 0 评论 -
【2024年华为秋招-10月23日-第三题(300分)-防火墙规则匹配】(题目+思路+Java&C++&Python解析+在线测试)
通过一系列操作命令,管理员可以定义规则链,并根据这些规则链对IP或CIDR地址进行访问控制。给定输入包括规则操作和查询命令,要求我们从一个默认规则链 c0 开始匹配 IP 地址,返回匹配的规则结果(Accept 或 Reject),或输出 Unknown 表示没有匹配的规则。对于一个CDRa.b.c.d/a,如果一个IP地址的前n个bit与a.b.c.d的前n个bit相同,那么这个P属于a.b.c.d/这个IP段。从默认链 c0 开始查询,根据输入的IP逐条匹配链中的规则。原创 2024-10-23 22:09:44 · 29 阅读 · 0 评论 -
【2024年华为秋招(留学生)-10月16日-第一题(100分)-最后超时的定时任务索引号】(题目+思路+Java&C++&Python解析+在线测试)
该题目要求模拟一个具有固定容量的定时器系统,根据任务的超时时刻和添加顺序,决定最终保留哪些任务,并输出最后超时任务的索引。2.队列的大小>=n,如果新任务的超时时间小于或等于队首的超时时间,则将队首任务移除,并将新任务插入队列。否则丢弃系统中最晚执行的超时任务,并将待添加任务加入系统中。同一时刻超时的任务按照加入系统的先后顺序依次执行超时任务;),这两个任务同时超时,题目要求返回更大的索引,因此返回。如果新任务的超时时间大于队首的超时时间,则丢弃新任务。时刻,即向该定时器系统添加的任务都是尚未超时的任务。原创 2024-10-23 08:52:29 · 122 阅读 · 0 评论 -
【2024年华为秋招(留学生)-10月16日-第二题(200分)-求一组算子的最短执行时间】(题目+思路+Java&C++&Python解析+在线测试)
由于向量计算单元的执行效率较低(矩阵计算单元的六分之一),我们需要找到一种分配方式,使得两个单元中较大的执行时间尽可能小。为了充分利用计算资源,我们可以合理部署算子的执行单元,让总体的执行时间最短,总的执行时间为。通过分析,我们可以发现,如果将向量单元部署得太大,则其计算时间可能会远远超过矩阵单元,反之如果将矩阵单元部署得太多,则可能导致无法充分利用向量单元。中矩阵计算单元和向量计算单元都可以执行矢量算子,他们是独立可并行执行的,但他们的计算效率是6:1,即假设某个失量算子在矩阵计算单元上执行的时间为。原创 2024-10-23 08:51:02 · 23 阅读 · 0 评论 -
【2024年华为秋招(留学生)-10月16日-第三题(300分)-最小换序代价】(题目+思路+Java&C++&Python解析+在线测试)
给定 222 个长度为均为 nnn 的整数数组 nums1nums1nums1 和 nums2nums2nums2 ,每次操作可以交换数组 nums2nums2nums2 中任意 222 个元素,其代价为两个下标的和。目标是对于所有的下标 iii 。0原创 2024-10-23 08:50:39 · 123 阅读 · 0 评论 -
【2024年华为秋招-10月16日-第一题(100分)-满足查询范围的平衡树数据之和】(题目+思路+Java&C++&Python解析+在线测试)
满足查询范围的叶节点的数据之和,如果找不到满足查询条件的叶节点,则输出叶节点的最大值,其他情况返回。数据库索引技术使用平衡树从树根到叶子节点的高度基本一致的特点,将数据保存到叶子节点,从而可以实。给定一个数组,经过升序排列后,构造平衡二叉树,查询平衡二叉树满足条件的叶子节点的数据之和。2.使用递归的方法,选择中间元素作为当前根节点,递归构建左右子树,保证平衡。遍历整棵树,找到所有叶子节点(左右子树均为空的节点),并将它们的值存入列表。],后面跟的是树的节点值,范围是[,所以输出叶子节点最大值。原创 2024-10-23 08:50:16 · 207 阅读 · 0 评论 -
【2024年华为秋招-10月16日-第二题(200分)-求最大括号表达式】(题目+思路+Java&C++&Python解析+在线测试)
给定一个合法的括号序列,要求通过对其进行若干次(或不进行)的相邻合法括号子序列的交换,得到字典序最大的括号序列。每个合法的括号序列由左右括号组成,并且是有效的括号匹配。现给定一个有效括号表达式,对其中任意两个相邻的子"有效表达式”进行交换,求在任意次数(包含0次)的交换之后,能够得到的值最大的括号表达式。我们可以将括号表达式看作是树状的结构,递归处理括号内部的子结构并保证排序合并后的结果是字典序最大的表达式。表示,该二进制序列对应的值即为括号表达式的值。次)的交换之后,能够得到的值最大的括号表达式。原创 2024-10-22 16:29:28 · 209 阅读 · 0 评论 -
【2024年华为秋招-10月16日-第三题(300分)-狩猎大比拼】(题目+思路+Java&C++&Python解析+在线测试)
计算每个猎人能击杀的猎物数量。.第一行为猎人和猎物种类的数量,依次用空格隔开,第二行为每名猎人选择的技能,不同猎人的技能之间用空格隔开,第三行为所有的猎物,不同猎物之间的弱点用空格隔开。每种猎物的数量可以认为是无限的,但是每种猎物只能被同一名猎人击杀一次,请帮忙计算每个猎人可击杀的猎物种类数量,击杀猎物总数最多的猎人将获得赏金猎人的称号。给定一个已完成技能搭配的猎人数组和猎物数组,请返回一个数组,数组中的每个元素是对应猎人最多可击杀的猎物数量。]中的任一技能,因此不能击杀猎物,可击杀的猎物数量为。原创 2024-10-22 16:27:57 · 186 阅读 · 0 评论 -
【2024年华为秋招-10月12日-第一题(100分)-通讯录合并】(题目+思路+Java&C++&Python解析+在线测试)
1.基于共享电话号码的联系人属于同一组的思路,我们可以先使用哈希表将电话号码映射到对应的联系人编号列表上,然后使用并查集将共享同一电话号码的联系人合并到同一组。2.对于并查集里的每个组(用该集合中的root节点编号表示),我们需要找到字典序最小的联系人姓名和该组内的联系人的所有电话号码。我们可以使用一个哈希表来存储每个组(用该集合中的root节点编号表示)的最小字典序的姓名和所有电话号码。3.最后,我们将每个组的姓名及电话号码(按字典序排序)存储到结果列表中,并对结果列表进行一个字典序排序。原创 2024-10-22 16:26:28 · 47 阅读 · 0 评论 -
【2024年华为秋招-10月12日-第二题(200分)-到邻国城市的最短距离】(题目+思路+Java&C++&Python解析+在线测试)
本题的核心是让小塔从城市 1 到城市 N,并且只能通过一条跨国公路。每条公路有一个距离和花费的属性。国是相邻的两个国家,每个国家都有很多城市,国家内部有很多连接城市的公路,国家之间也有很多跨国公路,连接两个国家的边界城市。可以找到一条最优线路:城市1(A国) -> 城市3(B国) -> 城市4(B国) -> 城市5(B国),2.枚举所有跨城市的边(u , v),考虑使用1 -> u + v -> n 更新最小值。可以找到一条最优线路:城市1(A国) -> 城市2(B国) -> 城市6(B国) ,原创 2024-10-22 16:24:49 · 21 阅读 · 0 评论 -
【2024年华为秋招-10月12日-第三题(300分)-寻找重复目录】(题目+思路+Java&C++&Python解析+在线测试)
使用。原创 2024-10-22 16:23:01 · 19 阅读 · 0 评论 -
【2024年华为秋招(留学生)-10月9日-第一题(100分)-无线基站名字相似度】(题目+思路+Java&C++&Python解析+在线测试)
每次插入或删除的代价是 3,因此 dp[i][j] 的值为 (i + j) * 3。替换操作:将 a[i] 替换为 b[j],代价为 dp[i-1][j-1] + cal(a[i], b[j])。我们定义 dp[i][j] 表示将字符串 a 的前 i 个字符转换为字符串 b 的前 j 个字符的最小代价。删除操作:将 a[i] 删除,那么转换成字符串 b 的代价为 dp[i-1][j] + 3。插入操作:向 a 中插入一个字符 b[j],那么转换代价为 dp[i][j-1] + 3。原创 2024-10-22 16:21:18 · 26 阅读 · 0 评论 -
【2024年华为秋招(留学生)-10月9日-第二题(200分)-统计最少媒体包发送源个数】(题目+思路+Java&C++&Python解析+在线测试)
题目要求我们计算最少的发送源个数,基于题目的描述,发送源的数据包序列号是连续递增的。我们的目标是通过扫描一遍输入序列号,计算出最少的发送源个数。某媒体处理服务负责接收来自多个媒体发送源的媒体包,并根据收到的媒体包进行媒体渲染处理。当前有这样一个需求:给定收到的媒体包序列号列表,计算发送该媒体包的最少发送源个数。是发送源发送的最后一个媒体包序列号);如果收到的,媒体包序列号不满足该规则,说明这些媒体包必然来自于多个发送源。2.网络上没有重传媒体包,即:同一个发送源发送的媒体包序列号不会重复,且序列号每次加。原创 2024-10-22 16:19:34 · 22 阅读 · 0 评论 -
【2024年华为秋招(留学生)-10月9日-第三题(300分)-狩猎大比拼】(题目+思路+Java&C++&Python解析+在线测试)
计算每个猎人能击杀的猎物数量。.第一行为猎人和猎物种类的数量,依次用空格隔开,第二行为每名猎人选择的技能,不同猎人的技能之间用空格隔开,第三行为所有的猎物,不同猎物之间的弱点用空格隔开。每种猎物的数量可以认为是无限的,但是每种猎物只能被同一名猎人击杀一次,请帮忙计算每个猎人可击杀的猎物种类数量,击杀猎物总数最多的猎人将获得赏金猎人的称号。给定一个已完成技能搭配的猎人数组和猎物数组,请返回一个数组,数组中的每个元素是对应猎人最多可击杀的猎物数量。]中的任一技能,因此不能击杀猎物,可击杀的猎物数量为。原创 2024-10-22 16:18:03 · 18 阅读 · 0 评论 -
【2024年华为秋招-10月9日-第一题(100分)-铺设光缆问题】(题目+思路+Java&C++&Python解析+在线测试)
矩阵表示的区域内铺设光缆,起点为机房,终点为目标小区。光缆只能沿着矩阵的边铺设(不能走对角线),部分节点由于各种原因无法经过(如输入中的障碍节点)。因为各种因素无法经过,起点的机房与终点的小区可能在区域内的任何位置,计算从机房到目标小区铺设光缆的最短距离(如果光缆无法从起点机房铺设到达目标小区,返回。的矩阵表示,光缆沿着矩阵的边铺设(不允许走对角线),区域内有些节点可以经过,但有些节点(如图红色。本题大意为:给你一个二维矩阵,里面有若干个点不能通过,求起点到终点的最短距离。目标点(要连到的小区)为坐标(原创 2024-10-22 16:14:00 · 42 阅读 · 0 评论 -
【2024年华为秋招-10月9日-第二题(200分)-软件安装工具】(题目+思路+Java&C++&Python解析+在线测试)
拓扑排序是一种用于对有向无环图(DAG)进行排序的方法,它将顶点按照依赖关系排成一个线性序列,使得对图中的每条边uv(u,v)uv,顶点uuu在vvv之前出现。在本题中,每个步骤可以视为一个顶点,步骤之间的依赖关系可以视为有向边。如果步骤AAA依赖于步骤BBB,则可以表示为一条从BBB到AAA的有向边。原创 2024-10-22 16:11:46 · 35 阅读 · 0 评论 -
【2024年华为秋招-10月9日-第三题(300分)-磁盘的写入策略】(题目+思路+Java&C++&Python解析+在线测试)
给定若干块磁盘,每块磁盘有不同的容量,按照某种写入比例,向这些磁盘写入一定量的数据。给定若干块磁盘,每块磁盘有不同的容量,并按照一定的写入比例,向这些磁盘写入一定量的数据。每隔几次写入后可以切换写入策略,我们需要找到使得所有磁盘的空间占用率保持均衡的写入策略组合数量。现在有一批数据要写入初始状态为空的硬盘,存在几种写入策略分配使最后硬盘空间的占用率(硬盘空间的占用率=硬盘写入的数据量/硬盘的总容量)保持均衡。次切换一次写入策略,不存在写入策略分配使最后硬盘空间的占用率保持均衡,因此返回。原创 2024-10-22 16:10:13 · 36 阅读 · 0 评论 -
【2024年华为秋招-9月27日-第一题(100分)-绩效互评人员分配】(题目+思路+Java&C++&Python解析+在线测试)
分组方案按照节点编号从小到大排序,如两个方案第一个节点相同,则按照第二个节点排序,以此类推;输出排序最靠前的一种方案,如无法分成符合条件的两组,则输出。单纯的二分图染色,处理完输入之后,开始进行染色,如果不是二分图进行标记停止染色。对染色后的图,存进两个数组里,比较一下谁小,在先输出谁即可。对于一个无向图,起初图中所有顶点都是无色,我们从任意未染色顶点出发,对这个顶点进行染色,对于与这个顶点相邻的的顶点,有三种情况:$\$图中所有顶点已经进行染色,并且没有出现相邻顶点颜色相同的情况,则该图是一个二分图。原创 2024-10-22 16:08:14 · 20 阅读 · 0 评论 -
【2024年华为秋招-9月27日-第二题(200分)-最好的通勤体验】(题目+思路+Java&C++&Python解析+在线测试)
给定小塔的上车站台、购买早餐的站台以及下车站台的编号,接着提供公交路线的信息,包括每条公交路线经过的站台编号。输入包括三行,第一行是上车、早餐店和下车的站台编号,第二行是公交路线的数量,后续每行提供一条公交路线的信息。小塔每天上班会从离他家里最近的公交站台上车,然后在他最喜欢的早餐店所在的站台下车买好早餐然后再上车,最后在离公司最近的公交站台下车,允许不限次数地在中途下车换乘其他路线的公交。现在分别给定小塔上车、早餐店、下车的公交站台编号,请帮他选择最佳的乘车路线,使乘坐的公交车总数最少(如果在同。原创 2024-10-22 16:06:43 · 27 阅读 · 0 评论 -
【2024年华为秋招-9月27日-第三题(300分)-病毒的传播】(题目+思路+Java&C++&Python解析+在线测试)
地图中,包含墙体,空地,已感染的人(不戴口罩),已感染的人(戴口罩),未感染的人(不戴口罩),未感染的人(戴口罩)。感染阈值:为该位置的人被感染的门限(戴口罩和不戴口罩数值不同),当危险系数大于等于感染阈值,则该位置的人就会被传染。危险系数:为感染的人对周围的位置造成的风险(戴口罩和不戴口罩数值不同),每过一格,危险系数就减。列处存在一个已感染并且不戴口罩的人,根据危险系数的配置信息,危险系数(不戴口罩)为。列处存在一个已感染并且不戴口罩的人,根据危险系数的配置信息,危险系数(不戴口罩)为。原创 2024-10-22 16:05:06 · 18 阅读 · 0 评论 -
【2024年华为秋招(留学生)-9月25日-第一题(100分)-最好的通勤体验】(题目+思路+Java&C++&Python解析+在线测试)
给定小塔的上车站台、购买早餐的站台以及下车站台的编号,接着提供公交路线的信息,包括每条公交路线经过的站台编号。输入包括三行,第一行是上车、早餐店和下车的站台编号,第二行是公交路线的数量,后续每行提供一条公交路线的信息。小塔每天上班会从离他家里最近的公交站台上车,然后在他最喜欢的早餐店所在的站台下车买好早餐然后再上车,最后在离公司最近的公交站台下车,允许不限次数地在中途下车换乘其他路线的公交。现在分别给定小塔上车、早餐店、下车的公交站台编号,请帮他选择最佳的乘车路线,使乘坐的公交车总数最少(如果在同。原创 2024-10-22 16:02:16 · 151 阅读 · 0 评论 -
【2024年华为秋招(留学生)-9月25日-第二题(200分)-通讯录合并】(题目+思路+Java&C++&Python解析+在线测试)
1.基于共享电话号码的联系人属于同一组的思路,我们可以先使用哈希表将电话号码映射到对应的联系人编号列表上,然后使用并查集将共享同一电话号码的联系人合并到同一组。2.对于并查集里的每个组(用该集合中的root节点编号表示),我们需要找到字典序最小的联系人姓名和该组内的联系人的所有电话号码。我们可以使用一个哈希表来存储每个组(用该集合中的root节点编号表示)的最小字典序的姓名和所有电话号码。3.最后,我们将每个组的姓名及电话号码(按字典序排序)存储到结果列表中,并对结果列表进行一个字典序排序。原创 2024-10-22 16:00:30 · 17 阅读 · 0 评论 -
【2024年华为秋招(留学生)-9月25日-第三题(300分)-磁盘的写入策略】(题目+思路+Java&C++&Python解析+在线测试)
在这道题中,给定若干磁盘,每个磁盘具有一定的容量,数据需要按照三种可能的写入策略(轮循写入、优先剩余空间写入、按比例轮循写入)写入到磁盘中。题目要求根据输入的写入策略切换频率、写入数据量和写入比例,判断有多少种写入策略可以使得所有磁盘的空间占用率保持均衡。我们的目标是通过这些策略的组合来写入指定的数据量,最终使各个磁盘的空间占用率保持均衡。现在有一批数据要写入初始状态为空的硬盘,存在几种写入策略分配使最后硬盘空间的占用率(硬盘空间的占用率=硬盘写入的数据量/硬盘的总容量)保持均衡。本题数据范围有误导性!原创 2024-10-22 15:58:55 · 24 阅读 · 0 评论 -
【2024年华为秋招-9月25日-第一题(100分)-社交网络用户影响力计算】(题目+思路+Java&C++&Python解析+在线测试)
目标是计算用户M在K跳内能够接触到的不同用户的数量,称为该用户的影响力。计算给定社交网络中某个用户在k跳范围内的影响力,也就是要找到所有距离m,k以内的能访问到的点,最短路问题,数据只有1e3跑一遍bfs(n^2),之后,枚举所有点,距离小于等于k的ans+=1,最后输出ans-1(除去本身)即可。社交网络拓扑图中的节点表示社交网络中的用户,边表示两个用户之间的社交连接,边是无向的,两个用户最多只有一条直接相连的边。该问题是典型的图论中的最短路问题,目标是在给定的社交网络中,找到某个用户。原创 2024-10-22 15:57:20 · 36 阅读 · 0 评论 -
【2024年华为秋招-9月25日-第二题(200分)-俄罗斯方块】(题目+思路+Java&C++&Python解析+在线测试)
每次成功放置时更新最大值,最后回溯到上一步,取消放置状态。个位置不能放置方块,这些位置通过坐标给出。我们需要计算在不重叠、不超出边界的情况下,最多可以放置多少个大方块。我们通过递归遍历每个位置,判断是否可以放置一个 2x2 的大方块。大方块,网格中有一些位置被标记为障碍物,不能放置大方块。现在,请计算在给定网格大小的情况下,最多可以放置多少个大方块。通过这种方法,我们可以有效地探索所有可能的放置方案,最终得到最多可以放置的大方块数量。的网格游戏中,可以放置由4个小方块组成的大方块(类似俄罗斯方块)。原创 2024-10-22 15:55:36 · 25 阅读 · 0 评论 -
【2024年华为秋招-9月25日-第三题(300分)-评估最大工作量】(题目+思路+Java&C++&Python解析+在线测试)
由于背包容量可达到 10^9,而物品数量 n 为 40,使用普通的 01 背包算法显然不可行,因为 2^40 的复杂度会爆炸。因此,我们可以将物品分成两个组,每组最多有 20 个物品,这样总的复杂度将减少到 2^20,大约在 100 万级别,仍然可以接受。整体时间复杂度为 O((2^(n/2)) log(2^(n/2))),这样就能高效地解决问题。人天预算完成部分需求。对于单个需求,每个任务要么不做,要么全部完成,必须耗时。个需求,每个需求需要不同的人天工作量。,代表每个需求所需工作量,单位是人天。原创 2024-10-22 15:53:46 · 89 阅读 · 0 评论 -
【2024年华为秋招(留学生)-9月19日-第一题(100分)-十六进制权重数组分析】(题目+思路+Java&C++&Python解析+在线测试)
给定数组中的每个整数,我们需要计算其在十六进制表示中的“权重”,即每个数字之和(0-9代表其权重为0-9,A-F分别代表权重10-15)。然后,对于数组中每个元素,我们要找到其右侧第一个权重更大的元素,并返回该元素的索引。接着,找出每个元素右侧第一个具有更大“权重”的元素的索引。计算每个元素的“权重”(基于其十六进制表示中各位数字的和),然后找出每个元素右侧第一个具有更大“权重”的元素的索引。您的任务是找出数组中每个元素右侧第一个具有更大“权重”的元素,并返回一个新的数组,该数组包含这些元素的索引。原创 2024-10-21 18:50:02 · 13 阅读 · 0 评论 -
【2024年华为秋招(留学生)-9月19日-第二题(200分)-服务器健康巡检】(题目+思路+Java&C++&Python解析+在线测试)
为了最小化检查数据中心服务器的时间,我们可以采取以下策略:首先,使用行检查,能够同时检查多行服务器,耗时1秒;然后,使用列检查,单列检查耗时2秒。优先进行行检查,尽可能多地覆盖服务器,再用列检查完成剩余的检查。在一个未来的超级数据中心,有一排存放服务器的阵列,阵列由一列一列的机架组成,机架的每一行可以存放一个服务器,每列架子的服务器都是自底向上依次摆放,摆放的个数是随机且大于0的。: 如果区间内有多个服务器的高度大于当前最小值,我们将这些服务器的高度减少到最小值,这一过程的代价为1秒。剩下的区间递归进行。原创 2024-10-21 18:48:15 · 313 阅读 · 0 评论 -
【2024年华为秋招(留学生)-9月19日-第三题(300分)-逆转矩阵列表】(题目+思路+Java&C++&Python解析+在线测试)
对于一个大小为n的矩阵,利用一个vis数组先把周围标记墙,从(1,1)开始顺时针(右下左上(循环))模拟走,走过的位置也标记为墙体,碰到墙则进行下一个方向例如(前面一格是墙则反向顺时针旋转90度),一定能走完n*n的矩阵。在本题中,我们需要处理一个 ( N \times N ) 的矩阵,其中的每个元素都是正整数,且所有的正整数从 ( 1 ) 到 ( N^2 ) 恰好出现一次。个整数,以空格分隔,表示逆时针链表的每个元素的值。号格子,接着完成里面的圈,以此类推,直到结束。的矩阵,其中每个元素都是正整数,且。原创 2024-10-21 18:46:39 · 90 阅读 · 0 评论 -
【2024年华为秋招-9月19日-第一题(100分)-网络健康检查】(题目+思路+Java&C++&Python解析+在线测试)
我们需要根据提供的字段值,计算布尔表达式的结果,并输出网络的健康状态。因每个网元的判断条件以及采集的数据不同,现在需要你对网络采集到的数据,以及工程师提供的判断条件进行解析。该程序的时间复杂度为 ( O(n x L + m) ),其中 ( n ) 是布尔表达式的数量,( L ) 是表达式的平均长度,( m ) 是采集的数据数量。对于回答的字符串,将里面的key+value替换成1或0,得到一个只包含1,0,&,|,的字符串也就是转换成表达式求值问题模拟即可$\$,分别表示布尔表达式的数量和采集数据的数量。原创 2024-10-20 13:58:51 · 18 阅读 · 0 评论 -
【2024年华为秋招-9月19日-第二题(200分)-防护设备】(题目+思路+Java&C++&Python解析+在线测试)
对于每一个中间值,利用广度优先搜索(BFS)从左上角出发,只有通过辐射值不超过当前中值的格子,并计算移动步数是否不超过K。迷宫的每个格子都有辐射值,配送员必须穿着防护能力不低于相应辐射值的防护服,才能通过该格子。注意:配送员需要通过迷宫的左上角和右下角,因此防护服的防护能力必须大于等于这两个格子的辐射值。每个格子都有一个辐射值,配送员需要穿着防护能力不低于相应辐射值的防护服才能通过该格子。因此,配送员希望知道,所需的最低防护能力是多少,以确保能安全到达目的地并满足时间限制。行的矩阵,表示每个格子的辐射值。原创 2024-10-20 13:57:03 · 15 阅读 · 0 评论 -
【2024年华为秋招-9月19日-第三题(300分)-日志文件存储问题】(题目+思路+Java&C++&Python解析+在线测试)
因为第一组的物品的sz序列为5,10,第二组的物品的sz序列为6。这个问题转化为:找到一个长度为n(分组个数)的sz序列,使得这个序列的和= 1。那么第一组的物品变成:(sz = 5 , value = 2) , (sz = 10 , value = 3)一个拥有一定容量的背包,有n组物品,每组物品有容量和价值。找到一个长度为n(分组个数)的sz序列,使得这个序列的和= 1。盘容量足以存储,则返回所存储的日志文件被下载的次数之和。原创 2024-10-20 13:55:29 · 17 阅读 · 0 评论 -
【2024年华为秋招-9月13日-第一题(100分)-数据解码】(题目+思路+Java&C++&Python解析+在线测试)
我们需要解码一段经过编码的二进制数据,数据由多个编码单元组成,这些编码单元有两种类型:简单编码单元和复杂编码单元。我们的目标是验证这些编码单元的格式是否符合规定,并计算出解码后的数据长度。,后面包含一个重复次数(1字节)、一个长度(4字节),以及指定字节数的值部分,这部分可以由0个或多个编码单元组成。编码后的数据必须完全符合上述两个原则,不允许有任何冗余的字节,请根据上述规则对一段编码后的数据进行校验,如果完全符合上述约束则输出解码后的长度,否则输出。编码单元分为两种类型:简单编码单元和复杂编码单元。原创 2024-10-19 18:09:04 · 24 阅读 · 0 评论 -
【2024年华为秋招-9月13日-第二题(200分)-穿越城市】(题目+思路+Java&C++&Python解析+在线测试)
小塔需要走路从城市的一端前往另一端。城市可以视为一个长条形,共有NNN个街区,按顺序排成一列,每个街区的右侧紧挨着下一个街区的左侧。初始时,小塔位于第111个街区的左侧,他的目标是到达第NNN个街区的右侧。步行通过第nnn个街区时,小塔需要花费的时间为ana_nan。同时,小塔可以选择坐最多MMM次地铁。每个街区的左侧都有地铁站,每次坐地铁可以穿越前方最少111个,最多kkk个连续的街区。坐地铁穿越任何一个街区所需的时间都是一个常数BBB(如果穿越222个街区,所需的时间是2×B2×B2×B,以此类推),原创 2024-10-19 18:07:26 · 20 阅读 · 0 评论 -
【2024年华为秋招-9月13日-第三题(300分)-关灯】(题目+思路+Java&C++&Python解析+在线测试)
小塔正值班,突然发现他所在的屋子进水了,水面一直上涨,考虑到可能有电器暴露在水中,小塔想通过尚未被水淹没的箱子达到电源处,关闭电源。假设电源和小明所处的位置都比较安全,不会被水淹没。已知屋子为矩形,可划分为大小相当的小方格,小塔的位置,电源,箱子都正好在小方格的正中间,覆盖整个方格;为了安全小塔只能移动到没有被上涨的水面淹没的小方格,箱子的高度不一,所在方格被水淹没的时间取决于方格内箱子的高度。第二行:用空格隔开的两个数字,第一个为屋子的长,对应余下输入的行数,第二个为屋子的宽,对应余下输入各行和个数。原创 2024-10-19 18:05:20 · 132 阅读 · 0 评论