文章目录
- 一、题目
- 🎃题目描述
- 🎃输入输出
- 🎃样例1
- 二、代码与思路参考
- 🎈C++语言思路
- 🎉C++代码
- 🎈Java语言思路
- 🎉Java代码
- 🎈Python语言思路
- 🎉Python代码
- 🎈C语言思路
- 🎉 C语言代码
- 🎈JS语言思路
- 🎉JS代码
- 作者:KJ.JK
订阅本专栏后即可解锁在线OJ刷题权限
🍂专栏介绍:最新的华为OD机试题目总结,使用C++、Java、Python、C语言、JS五种语言进行解答,每个题目的思路分析都非常详细,支持在线OJ评测刷题!!!!订阅后获取权限,新增图解思路,问题解疑,多样例测试,超过百字的思路参考解析,持续更新,代码仅供学习参考
题库学习: 华为OD技术面试手撕真题
一、题目
🎃题目描述
一个工厂有m条流水线,来并行完成n个独立的作业,该工厂设置了一个调度系统,在安排作业时,总是优先执行处理时间最短的作
业,现给定流水线个数m,需要完成的作业数n,每个作业的处理时间分别为t1,t2…tn,请你编程计算处理完所有作业的耗时为多少?
当n>m时,首先处理时间短的m个作业进入流水线,其他的等待,当某个作业完成时,依次从剩余作业中取处理时间最短的进入处理
🎃输入输出
输入
第一行为2个整数(采用空格分隔),分别表示流水线个数m和作业数n
第二行输入n个整数(采用空格分隔),表示每个作业的处理时长t1,t2…tn
0<m,n<100
0<t1,t2…tn<100
注:保证输入都是合法的
输出
输出处理完所有作业的总时长
🎃样例1
输入35843210输出13说明:先安排时间为2、3、4的3个作业 第一条流水线先完成作业,然后调度剩余时间最短的作业8第二条流水线完成作业,然后调度剩余时间最短的作业10总工耗时就是第二条流水线完成作业的时间13(3+10)