华为OD刷题C卷 - 每日刷题37(CPU算力分配,API集群负载统计)

2024-06-18 17:04

本文主要是介绍华为OD刷题C卷 - 每日刷题37(CPU算力分配,API集群负载统计),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、(CPU算力分配):

这段代码是解决“CPU算力分配”的问题。它提供了一个Java类Main,其中包含main方法和swap方法,用于找出两组服务器中用于交换的CPU的算力,使得两组服务器的总算力相等,并要求从A组服务器中选出的CPU算力尽可能小。

main方法首先读取A组和B组服务器中CPU的数量,然后读取每组服务器中各个CPU的算力值。接着,调用swap方法并打印需要交换的CPU算力。

swap方法首先计算两组服务器的总算力,然后找出需要交换的CPU算力的差值target。接着,对A组服务器的CPU算力进行升序排序,并通过遍历和查找来找出满足条件的最小CPU算力。最后,返回A组和B组中用于交换的CPU算力。

2、(API集群负载统计):

这段代码是解决“API集群负载统计”的问题。它提供了一个Java类Main,其中包含main方法,用于统计RESTful API集合中各个API的访问频次。

main方法首先读取访问历史日志的条数n,然后读取每个API的URL地址,并将其分割成层级存储在二维数组api中。接着,读取要查询的层级index和关键字key,并通过遍历访问历史日志来统计关键字在指定层级上出现的频次。最后,打印出统计结果。

package OD369;import java.util.Arrays;
import java.util.Scanner;/*** @description CPU算力分配* @level 6* @score 100*//*** 题目描述* 现有两组服务器A和B,每组有多个算力不同的CPU,其中 A[i] 是 A 组第 i 个CPU的运算能力,B[i] 是 B组 第 i 个CPU的运算能力。* <p>* 一组服务器的总算力是各CPU的算力之和。* <p>* 为了让两组服务器的算力相等,允许从每组各选出一个CPU进行一次交换,* <p>* 求两组服务器中,用于交换的CPU的算力,并且要求从A组服务器中选出的CPU,算力尽可能小。* <p>* 输入描述* 第一行输入为L1和L2,以空格分隔,L1表示A组服务器中的CPU数量,L2表示B组服务器中的CPU数量。* <p>* 第二行输入为A组服务器中各个CPU的算力值,以空格分隔。* <p>* 第三行输入为B组服务器中各个CPU的算力值,以空格分隔。* <p>* 1 ≤ L1 ≤ 10000* 1 ≤ L2 ≤ 10000* 1 ≤ A[i] ≤ 100000* 1 ≤ B[i] ≤ 100000* 输出描述* 对于每组测试数据,输出两个整数,以空格分隔,依次表示A组选出的CPU算力,B组选出的CPU算力。* <p>* 要求从A组选出的CPU的算力尽可能小。*/
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);//两组服务器分别的CPU数量int n1 = sc.nextInt();int n2 = sc.nextInt();//服务器A的CPU算力int[] a = new int[n1];for (int i = 0; i < n1; i++) {a[i] = sc.nextInt();}//服务器B的CPU算力int[] b = new int[n2];for (int i = 0; i < n2; i++) {b[i] = sc.nextInt();}System.out.println(swap(a, b));}//交换两个数组中的一个值,使两数组和相等,要求从a中取的数要尽量小public static String swap(int[] arrA, int[] arrB) {int sumA = sum(arrA);int sumB = sum(arrB);//因为答案肯定存在,所以一定能被2整除int target = (sumA - sumB) / 2;//交换的值尽可能小//int min = Integer.MAX_VALUE;//把A升序排序,从头遍历,找到的第一个可交换的就一定是最小的Arrays.sort(arrA);//记录题解String ans = "";//sumA - a + b = sumB -b + a// a-b = (sumA-sumB) / 2//即 a-b = targetfor (int a : arrA) {int temp = a - target;//如果arrB中存在temp,因为A是升序排序,则当前a,b就是最优解for (int b : arrB) {if (b == temp) {return a + " " + b;}}}//输入保证答案肯定存在return ans;}//求数组和public static int sum(int[] a) {int ans = 0;for (int i : a) {ans += i;}return ans;}}
package OD370;import java.util.Scanner;/*** @description API集群负载统计* @level 3*//*** 题目描述* 某个产品的RESTful API集合部署在服务器集群的多个节点上,近期对客户端访问日志进行了采集,需要统计各个API的访问频次,根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。* <p>* RESTful API是由多个层级构成,层级之间使用 / 连接,如 /A/B/C/D 这个地址,A属于第一级,B属于第二级,C属于第三级,D属于第四级。* <p>* 现在负载均衡模块需要知道给定层级上某个名字出现的频次,未出现过用0表示,实现这个功能。* <p>* 输入描述* 第一行为N,表示访问历史日志的条数,0 < N ≤ 100。* <p>* 接下来N行,每一行为一个RESTful API的URL地址,约束地址中仅包含英文字母和连接符 / ,最大层级为10,每层级字符串最大长度为10。* <p>* 最后一行为层级L和要查询的关键字。* <p>* 输出描述* 输出给定层级上,关键字出现的频次,使用完全匹配方式(大小写敏感)。*/
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);//访问日志的条数int n = Integer.parseInt(sc.nextLine());//最大层级为10String[][] api = new String[n][10];for (int i = 0; i < n; i++) {//注意 开头有"/"的话,拆分出来第一个元素为"",下标为0api[i] = sc.nextLine().split("/");}String[] search = sc.nextLine().split(" ");int index = Integer.parseInt(search[0]);String key = search[1];int count = 0;for (int i = 0; i < n; i++) {//防止index下标越界if (index < api[i].length) {if (api[i][index].equals(key)) {count++;}}}System.out.println(count);}
}

这篇关于华为OD刷题C卷 - 每日刷题37(CPU算力分配,API集群负载统计)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1072590

相关文章

通过高德api查询所有店铺地址信息

通过高德api查询所有店铺地址电话信息 需求:通过高德api查询所有店铺地址信息需求分析具体实现1、申请高德appkey2、下载types city 字典值3、具体代码调用 需求:通过高德api查询所有店铺地址信息 需求分析 查询现有高德api发现现有接口关键字搜索API服务地址: https://developer.amap.com/api/webservice/gui

java中查看函数运行时间和cpu运行时间

android开发调查性能问题中有一个现象,函数的运行时间远低于cpu执行时间,因为函数运行期间线程可能包含等待操作。native层可以查看实际的cpu执行时间和函数执行时间。在java中如何实现? 借助AI得到了答案 import java.lang.management.ManagementFactory;import java.lang.management.Threa

DDei在线设计器-API-DDeiSheet

DDeiSheet   DDeiSheet是代表一个页签,一个页签含有一个DDeiStage用于显示图形。   DDeiSheet实例包含了一个页签的所有数据,在获取后可以通过它访问其他内容。DDeiFile中的sheets属性记录了当前文件的页签列表。   一个DDeiFile实例至少包含一个DDeiSheet实例。   本篇最后提供的示例可以在DDei文档直接预览 属性 属性名说明数

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

API-环境对象

学习目标: 掌握环境对象 学习内容: 环境对象作用 环境对象: 指的是函数内部特殊的变量this,它代表着当前函数运行时所处的环境。 作用: 弄清楚this的指向,可以让我们代码更简洁。 函数的调用方式不同,this指代的对象也不同。【谁调用,this就是谁】是判断this指向的粗略规则。直接调用函数,其实相当于是window.函数,所以this指代window。

华为---OSPF的DR与BDR(六)

9.6 OSPF的DR与BDR 9.6.1 原理概述 在OSPF的广播类型网络和NBMA类型网络中,如果网络中有n台路由器,若任意两台路由器之间都要建立邻接关系,则需要建立n×(n-1)/2个邻接关系,即当路由器很多时,则需要建立和维护的邻接关系就很多,两两之间需要发送的报文也就很多,这会造成很多内容重复的报文在网络中传递,浪费了设备的带宽资源。因此在广播和NBMA类型网络中,OSPF协议定义

华为某员工爆料:偷偷跑出去面试,被面试官鄙视了。第一句话就问:华为淘汰的吧,35岁了,这个年龄在华为能混得下去吗?身体没啥毛病吧

“你都35岁了,难不成是被华为淘汰的?在华为混不下去了吧?身体没啥毛病吧,我们这体检可是很严的。” 近日,一位华为员工在朋友圈爆料,自己在面试时遭到了面试官的无理取闹和人身攻击,原因仅仅是因为他35岁了,曾经在华为工作过。 这番话,充满了傲慢与偏见,让人听了义愤填膺。这位面试官的言行,不仅是对求职者的不尊重,更是对职场规则的践踏。 面试本应是双向选择的过程,企业和求职者在相互了解的基

高性能并行计算华为云实验五:

目录 一、实验目的 二、实验说明 三、实验过程 3.1 创建PageRank源码 3.2 makefile的创建和编译 3.3 主机配置文件建立与运行监测 四、实验结果与分析 4.1 采用默认的节点数量及迭代次数进行测试 4.2 分析并行化下节点数量与耗时的变化规律 4.3 分析迭代次数与耗时的变化规律 五、实验思考与总结 5.1 实验思考 5.2 实验总结 E

SDAutoLayout/UIView+SDAutoLayout.h 的基本使用,记住这4个Api就足够了~

1.1 > leftSpaceToView(self.view, 10) 方法名中带有“SpaceToView”的方法表示到某个参照view的间距,需要传递2个参数:(UIView)参照view 和 (CGFloat)间距数值 1.2 > widthRatioToView(self.view, 1) 方法名中带有“RatioToView”的方法表示view的宽度或者高度等属性相对于参

每日一练:攻防世界:5-1 MulTzor

一、XorTool 基于 XOR(异或)运算实现。它可以帮助您快速地对文本、二进制文件进行加密解密操作。 认识XorTool工具: 让我们先去认识一下工具: xortool.py 是基于 python 的脚本,用于完成一些 xor 分析,包括: 猜想 key 的长度 猜想 key 的值 解密一些经过 xoe 加密的文件 也就是说当遇到不知道文件类型的文件,可以尝试去看看它是否被xo