华为OD机试真题 Python 实现【微服务的集成测试】【2023Q1 100分】,附详细解题思路

news2024/11/24 5:29:16

在这里插入图片描述

目录

    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Python算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出

一、题目描述

现在有n个容器服务,服务的启动可能有一定的依赖性(有些服务启动没有依赖),其次服务自身启动加载会消耗一些时间。
给你一个 nxn 的二维矩阵 useTime,其中 useTime[i][i]=10 表示服务 i 自身启动加载需要消耗10s,useTime[i][j]=1 表示服务 i 启动依赖 j 启动完成,useTime[i][k]=0,表示服务 i 启动不依赖服务 k,其实0 <= i,j,k <n。服务之间启动没有循环依赖,若想对任意一个服务 i 进行集成测试(服务 i 自身也需要加载),求最少需要等待多长时间。

二、输入描述

第一行输入服务总量n,之后的 n 行表示服务启动的依赖关系以及自身启动加载耗时。

最后一行输入 k 表示计算需要等待多长时间后可以对服务 k 进行集成测试。

其中 1 <= k <= n,1 <= n <= 100。

三、输出描述

最少需要等待多长时间(s)后可以对服务 k 进行集成测试。

四、解题思路

  1. 首先,读取输入的服务总量n和依赖关系以及启动加载时间的二维矩阵useTime;
  2. 根据输入的服务总量n创建一个nxn的二维数组nums,并将useTime的值赋给nums;
  3. 读取输入的需要进行集成测试的服务k;
  4. 调用needTime方法,传入二维数组nums和服务k的索引值(k-1);needTime方法用于计算当前服务需要等待的最少时间;
  5. 在needTime方法中,首先获取当前服务自身启动加载时间selfTime,即nums[k][k];
  6. 遍历二维数组nums的第k行,如果存在依赖关系(nums[k][i]==1且i!=k),则递归调用needTime方法计算依赖服务i的最少等待时间time,并更新dependMaxTime为依赖服务的最大等待时间;
  7. 返回selfTime加上dependMaxTime,即为当前服务k进行集成测试所需的最少等待时间;
  8. 输出最少等待时间;

五、Python算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int[][] nums = new int[n][n];
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            nums[i][j] = sc.nextInt();
        }
    }
    int k = sc.nextInt();
    //从第K个服务,对应到数组行数就是k-1
    int time = needTime(nums, k - 1);
    System.out.println(time);

}

//获取当前服务的需要等待的最少时间
public static int needTime(int[][] nums, int k) {
    int n = nums[0].length;

    int selfTime = nums[k][k];
    int dependMaxTime = 0;
    for (int i = 0; i < n; i++) {
        if (nums[k][i] == 1 && i != k) {
            int time = needTime(nums, i);
            dependMaxTime = Math.max(dependMaxTime, time);
        }
    }
    return selfTime + dependMaxTime;
}

六、效果展示

1、输入

3
5 0 0
1 5 0
0 1 5
3

2、输出

15

在这里插入图片描述


🏆下一篇:华为OD机试真题 Python 实现【相对开音节】【2022Q4 100分】,附详细解题思路

🏆本文收录于,华为OD机试(Python)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/721638.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode:42. 接雨水(单调栈C++)

目录 42. 接雨水 题目描述&#xff1a; 实现代码与解析&#xff1a; 单调栈 原理思路&#xff1a; 42. 接雨水 题目描述&#xff1a; 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#x…

SpringBoot配置外部Tomcat项目以及启动流程源码分析

1.SpringBoot配置外部Tomcat并打war包 2.SpringBoot配置外部Tomcat项目启动流程源码分析

调戏chatGPT(三)逻辑推理

chatGPT已经被吹的神乎其神了&#xff0c;今天我来测试一下chatGPT的逻辑推理能力 t 你好 你好&#xff01;很高兴能与您交流。 T 今天我想考考你的智力&#xff0c;看看你的逻辑思维能力如何 太好了&#xff01;我非常乐意 t 一根质地不均匀的绳子完全烧完需要1小时…

【云原生 | 57】Docker三剑客之Docker Swarm֯使用其他服务发现后端

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…

Android 为什么设计只有主线程更新UI?

选择方案的选择 单线程更新UI多线程更新UI 从问题本身考虑就两个方案不是单线程就是多线程。 下面是个人根据具体情况分析&#xff0c;如果有什么不对的地方&#xff0c;欢迎指正。 从开发效率来看&#xff0c;开发一个 单线程UI 库&#xff0c;会显得非常容易&#xff0c;而…

动态gif图片如何快速制作?分享一招快速制作gif动画

动态gif图片对大家来说都不陌生了&#xff0c;常常会在各种社交平台中见到&#xff0c;那么&#xff0c;这种gif动图片要怎么制作呢&#xff1f;很简单&#xff0c;给大家分享一款专业的gif制作&#xff08;https://www.gif.cn/&#xff09;工具-GIF中文网&#xff0c;只需要上…

【多维BFS】AB路线

P2038 - AB 路线 - ZJHUOJ 题意&#xff1a; 思路&#xff1a; 首先看是什么影响了决策&#xff0c;即能不能走这个格子 走到当前格子是第几步和格子的字符种类影响了能不能走该格子&#xff0c;因此需要多加一维k&#xff0c;表示走到当前字符种类的第k步 然后就可以去BFS…

Jvm对象创建-JVM(六)

上篇文章说了jvisualvm工具查看年轻代老年代gc过程。 Jvisualvm&内存模型剖析-JVM&#xff08;五&#xff09;https://blog.csdn.net/ke1ying/article/details/131524708 jvm创建对象 之前我们介绍了类的加载&#xff0c;这篇文章要介绍类的创建&#xff0c;过程主要是&a…

通俗易懂生成对抗网络GAN原理(二)

生成对抗网络&#xff08;Generative Adversarial Network, GAN&#xff09;的原理 学习李宏毅机器学习课程总结。 前面学习了GAN的直观的介绍&#xff0c;现在学习GAN的基本理论。现在我们来学习GAN背后的理论。 引言 假设x是一张图片&#xff08;一个高维向量&#xff09;…

「AntV」使用AntV X6实现流程编排设计器

通过对BPMN的深入学习&#xff0c;以及对业界成熟的流程编排设计器的调研&#xff0c;了解到要研发一个流程编排设计器&#xff0c;需要实现如下几个主要的功能&#xff1a; 支持创建各种流程图元素&#xff0c;包括任务&#xff08;活动&#xff09;、网关、事件等。支持绘制…

漏洞复现 || NginxWebUI 后台命令执行runCmd远程命令执行

免责声明 技术文章仅供参考&#xff0c;任何个人和组织使用网络应当遵守宪法法律&#xff0c;遵守公共秩序&#xff0c;尊重社会公德&#xff0c;不得利用网络从事危害国家安全、荣誉和利益&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此…

【Linux】yum git 的使用

yum 的使用 yum 源的查看 yum 源就是一个配置文件。 可以看到 yum 源的文件中包含有很多下载源的链接。我们使用 yum 命令进行安装的时候&#xff0c;就是通过这些链接去寻找下载源进行下载的。这些链接一般都是国内的镜像网址。 所谓的更新 yum 源&#xff0c;也就是将最新…

异步交互技术Ajax

Ajax 概念&#xff1a;Asynchronous JavaScr And XML 异步的JavaScript和XML作用&#xff1a; 数据交换&#xff1a;通过Ajax可以给服务器发送请求&#xff0c;并获取服务响应的数据异步交互&#xff1a;可以在不重新加载整个页面的情况下&#xff0c;与服务器交换数据并更新部…

mysqldump + python 定时备份数据库

场景&#xff1a; 需要对mysql进行定时备份&#xff0c;受限于硬盘空间的大小&#xff0c;需要对备份的数据需要定时清理 python代码实现&#xff1a; # -*- coding:UTF-8 -*- """ProjectName : HotelGo2DelonixPmxFileName : fix_missing_ratesDescripti…

第二章:L2JMobius学习 – 安装jdk17

L2JMobius是一套开源的 LineageII 的服务器端代码&#xff0c;使用Java语言编写。想要运行L2JMobius源程序的话&#xff0c;需要安装jdk17版本。首先&#xff0c;下载jdk17版本。 https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.msi 当然&#xff0c;也…

华为OD机试真题 Java 实现【新员工座位安排系统】【2022Q4 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 一、题目描述 工位由序列F1,F2…Fn组成&#xff0c;Fi值为0、1或2。其中0代表空置&#xff0c;1代表有人&#xff0c;2代表障碍物。 1、某一空位的友好度为左右连续…

ModaHub魔搭社区:腾讯云发布的向量数据库有什么特点?技术架构是什么样的?

腾讯云发布的向量数据库有什么特点&#xff1f;技术架构是什么样的&#xff1f; Tencent Cloud VectorDB从性能上看&#xff0c;具备高性能、高可用、低成本等优势&#xff0c;比如单索引支持10亿级向量规模&#xff0c;最快支持毫秒级数据实时更新&#xff0c;适用于AI运算、…

【STM32】自举模式 和 程序下载(ST-Link和串口示例)

STM32官方网站STM32中文社区 如果遇到不清楚的概念&#xff0c;可以看之前的文章。 一、自举模式二、程序下载2.1 概述2.2 实操2.21 SWD 方式下载&#xff08;ST-Link&#xff09;2.22 串口下载 一、自举模式 STM32有一个特殊的功能&#xff0c;就是可以通过不同的方式启动程序…

maven 工程结构 和 archetype 模板

文章目录 一、maven 工程结构1.1. jar 工程结构1.2. war 工程结构 二、archetype 模板2.1. 推荐的 archetype 模板2.2. 自定义 archetype 模板2.2.1 自定义模板示例 有没有好奇过&#xff0c;通过 Maven 生命周期命令构建项目时&#xff0c;我们并没有指定源文件目录和编译后的…

5张图告诉你:同样是职场人,差距怎么这么大?

点赞 ➕ 评论 ➕ 收藏 养成三连好习惯 在职场中&#xff0c;我们常常会听到各种各样的抱怨&#xff1a; &#x1f469;‍⚖️‍ 小A: 凭什么别人每次述职绩效都是优秀呀&#xff1f; 感觉TA也没干啥呀! &#x1f575; 小B: 凭啥这个事情&#xff0c;领导指派TA去对接呀&#…