华为od机试
傲雪凌霜,松柏长青
勤以修身,俭以养德
展开
-
华为od-C卷100分题目8 - CPU算力分配
现有两组服务器A和B,每组有多个算力不同的CPU,其中A[i]是A组第i个CPU的运算能力,B[i]是B组第i个CPU的运算能力。为了让两组服务器的算力相等,允许从每组各选出一个CPU进行一次交换,求两组服务器中,用于交换的CPU的算力,并且要求从A组服务器中选出的CPU,算力尽可能小。第一行输入为L1和L2,以空格分隔,L1表示A组服务器中的CPU数量,L2表示B组服务器中的CPU数量。对于每组测试数据,输出两个整数,以空格分隔,依次表示A组选出的CPU算力、B组选出的CPU算力。原创 2024-07-22 09:08:12 · 250 阅读 · 0 评论 -
华为od-C卷100分题目9 - 最大坐标值
有智障举报抄袭,题目是你出的?自己写的代码也举报抄袭,断了别人财路,别人60块的专栏,赚了10多w了。整个游戏过程中,小明所处的坐标值依次为[0,-5,-3],最大坐标值为0。思路:非常简单,根据数值的正负和是否和幸运值相等进行移动,更新最大值。指令为1,正好等于幸运数,前进1+1=2步,此时坐标值为-3;游戏开始前,站在坐标轴原点,此时坐标值为0;指令为-5,后退5步,此时坐标值为-5;原创 2024-07-22 09:06:34 · 245 阅读 · 0 评论 -
华为od-C卷200分题目7 - 可以组成网络的服务器
在一个机房中,服务器的位置标识在 n*m 的整数矩阵网格中,1表示单元格上有服务器,0 表示没有。如果两台服务器位于同一行或者同一列中紧邻的位置,则认为它们之间可以组成一个局域网。请你统计机房中最大的局域网包含的服务器个数。[0][0]、[1][0]、[1][1]三台服务器相互连接,可以组成局域网。思路:非常简单,遍历图,到过的地方标记一下就行了,计数找最大值。第一行输入两个正整数,n和m,0 < n,m原创 2024-07-07 16:19:15 · 294 阅读 · 0 评论 -
华为od-C卷200分题目6 - 5G 网络建设
第三行开始连续输入 M 行数据,格式为 X Y Z P,其中 X Y 表示基站的编号,0 < X原创 2024-07-07 15:57:39 · 647 阅读 · 0 评论 -
华为od-C卷200分题目5 - 项目排期
思路:非常简单,先按照从打到小的顺序排序,然后按照每个人分的最小值进行排序,谁最小谁就先分,用优先级队列就非常简单,每次给第一个分就行了。共有两位员工,其中一位分配需求 6 2 7 7 3 2 1 共需要28天完成,另一位分配需求 9 3 11 4 共需要27天完成,故完成所有工作至少需要28天。项目组共有N个开发人员,项目经理接到了M个独立的需求,每个需求的工作量不同,且每个需求只能由一个开发人员独立完成,不能多人合作。第一行输入为M个需求的工作量,单位为天,用逗号隔开。原创 2024-06-30 14:36:16 · 428 阅读 · 0 评论 -
华为od-C卷200分题目4 - 电脑病毒感染
相连接的电脑距离不一样,所以感染时间不一样,感染时间用t表示。其中网络内一个电脑被病毒感染,其感染网络内所有的电脑需要最少需要多长时间。如果最后有电脑不会感染,则返回-1给定一个数组times表示一个电脑把相邻电脑感染所用的时间。如图:path[i]= {i,j, t} 表示电脑i->j 电脑i上的病毒感染j,需要时间t。第二个参数:总共多少条网络连接第三个 1 2 1 表示1->2时间为1第七行:表示病毒最开始所在的电脑号1。思路:层次遍历,但是需要按照时间顺序排序,两个点都能到,时间短的在前。原创 2024-06-29 17:03:16 · 501 阅读 · 0 评论 -
华为od-C卷200分题目3 - 两个字符串间的最短路径问题
给定两个字符串,分别为字符串A与字符串B。例如A字符串为ABCABBA,B字符串为CBABAC可以得到下图m*n的二维数组,定义原点为(0, 0),终点为(m, n),水平与垂直的每一条边距离为1,映射成坐标系如下图。从原点(0, 0)到(0, A)为水平边,距离为1,从(0, A)到(A, C)为垂直边,距离为1;假设两个字符串同一位置的两个字符相同则可以作一个斜边,如(A, C)到(B, B)最短距离为斜边,距离同样为1。原创 2024-06-23 15:18:58 · 397 阅读 · 0 评论 -
华为od-C卷200分题目2 - 找城市
思路:以每个点进行dfs,求子节点的所以路线,求出最大值,然后再求出每个点的最大值找最小值。图中以根节点的每个子节点,得到根节点的值为5。原创 2024-06-16 21:28:38 · 322 阅读 · 0 评论 -
华为od-C卷200分题目1 - 分月饼
(A1 + An) * (n) / 2 => 可以得到 (0 + (0 + (n - 1) * d) * n / 2 => (n - 1) * n * 3 / 2。去掉保底部分后剩下的,最大值是等差数列,当你人数确定时,那么最大等差数列就确定了,如果是3 人,则去掉保底部分最大就是9(0 + 3 + 6)。以3人为例只要数量超过3人的等差数列9,则可以将多的作为保底,化简问题。分的方式:基础的保底 + 后续的分配,基础的保底就是base * n。3人13月饼,减去3个保底,分配的情况为(1, 3, 6)。原创 2024-06-16 19:58:54 · 322 阅读 · 0 评论 -
华为od-C卷100分题目10 - 寻找最富裕的小家庭
在一棵树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为一个小家庭。第二行为N个空格分隔的数,表示编号1-N的成员的财富值,0原创 2024-06-09 17:11:11 · 243 阅读 · 0 评论 -
华为od-C卷100分题目7 - 素数之积
RSA加密算法在网络安全世界中无处不在,它利用了极大整数因数分解的困难度,数据越大,安全系数越高。如果成功找到,以单个空格分割,从小到大输出两个素数,分解失败,请输出-1 -1。给定一个32位正整数,请对其进行因数分解,找出是哪两个素数的乘积。思路:很简单,就是循环判断素数。原创 2024-06-09 15:18:55 · 214 阅读 · 0 评论 -
华为od-C卷100分题目3 - 用连续自然数之和来表达整数
思路:等差数列,可以使用求和公式,(An-A1+1)来表示个数,则结果为(A1+An)*(An-A1+1)/2 = 输入的数(num)一个整数可以由连续的自然数之和来表示给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。在每个测试数据结束时,输出一行”Result:X”,其中X是最终的表达式个数。该整数的所有表达式和表达式的个数。每个表达式中按自然数递增的顺序输出,具体的格式参见样例。得到的A1只要是整数就说明结果是对的,并且一定是唯一解。自然数个数最少的表达式优先输出。原创 2024-06-07 10:38:54 · 714 阅读 · 0 评论 -
华为od-C卷100分题目5 - API集群负载统计
某个产品的RESTful API集合部署在服务器集群的多个节点上,近期对客户端访问日志进行了采集,需要统计各个API的访问频次,根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。RESTful API是由多个层级构成,层级之间使用 / 连接,如 /A/B/C/D 这个地址,A属于第一级,B属于第二级,C属于第三级,D属于第四级。接下来N行,每一行为一个RESTful API的URL地址,约束地址中仅包含英文字母和连接符 / ,最大层级为10,每层级字符串最大长度为10。原创 2024-06-08 22:25:05 · 314 阅读 · 0 评论 -
华为od-C卷100分题目6 - 整数对最小和
思路:哪个数组的数更小,哪个数组就先加,每次循环时统计每对数的和,特殊情况是当一个数组达到最大值时,只能另一个数组移动,直到超过k或者数组遍历完。输入两行数组array1、array2, 每行首个数字为数组大小size(0 < size原创 2024-06-08 22:57:45 · 134 阅读 · 0 评论 -
华为od-C卷100分题目4 - 开源项目热榜
思路:通过权重进行排序,如果相等则按照字典序。原创 2024-06-08 22:06:44 · 220 阅读 · 0 评论 -
华为od-D卷100分题目2 - 围棋的气
第一行数据表示三个坐标(0, 5)、(8, 9)、(9, 10) 第一行表示黑棋的坐标,第二行表示白棋的坐标。题目保证输入两行数据,无空行且每行按前文要求是偶数个,每个坐标不会超出棋盘范围。每行数据以空格分隔,数据个数是2的整数倍,每两个数是一组,代表棋子在棋盘上的坐标;坐标的原点在棋盘左上角点,第一个值是行号,范围从0到18;第二个值是列号,范围从0到18。两个数字以空格分隔,第一个数代表黑棋的气数,第二个数代表白棋的气数。原创 2024-06-05 20:53:46 · 425 阅读 · 0 评论 -
华为od-D卷100分题目1 - 寻找身高相近的小朋友
华为od-D卷100分题目-1寻找身高相近的小朋友原创 2024-06-05 19:00:13 · 129 阅读 · 0 评论