文章目录
- 一、题目
- 🎃题目描述
- 🎃输入输出
- 🎃样例1
- 🎃样例2
- 二、题目解析
- 三、代码参考
- 作者:KJ.JK
🍂个人博客首页: KJ.JK
🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用C语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习
一、题目
🎃题目描述
某公司研发了一款高性能AI处理器。 每台物理设备具备8颗AI处理器,编号分别为0、1、2、3、4、5、6、7。
编号0-3的处理器处于同一个链路中, 编号4-7的处理器处于另外一个链路中,不通链路中的处理器不能通信。
现给定服务器可用的处理器编号数组array,以及任务申请的处理器数量num,找出符合下列亲和性调度原则的芯片组合。
如果不存在符合要求的组合,则返回空列表。
和性调度原则:
1、如果申请处理器个数为1,则选择同一链路,剩余可用的处理器数量为1个的最佳,其次是剩余3个的为次佳,然后是剩余2个,最后是剩
余4个。
2、如果申请处理器个数为2,则选择同一链路剩余可用的处理器数量2个的为最佳,其余是剩余4个,最后是剩余3个。
3、如果申请处理器个数为4,则必须选择同一链路剩可用的处理器数量为4个。
4、如果申请处理器个数为8,则申请节点所有8个处理器。
提示:
1、任务申请的处理器数量只能是1、2、4、8。
2、编号0-3的处理器处于一个链路, 编号4-7的处理器处于另外一个链路。
3、处理器编号唯一, 坏存在相同编号处理器。
🎃输入输出
输入
输入包含可用的处理器编号数组array,以及任务申请的处理器数量num两个部分。
第一行为array,第二行为num。例如:[0,1,4,5, 6, 7]
表示当前编号为0、1、 4、5、6、7的处理器可用。任务申请1个处理器。
0 <= array.length <= 8
0 <= array[i] <= 7
numin[1,2,4,8]
输出
输出为组合列表,当array=[0,1, 4, 5, 6, 7],num=1时,输出为
[[0],[1]].
🎃样例1
输入
[0,1,4,5,6,7]
1输出
[[0], [1]] 说明:
根据第一亲和性调度原则, 在剩余两个处理器的链路(0, 1, 2, 3)中选择处理器。
由于只有0和1可以用,则返回任意一颗处理器即可。
🎃样例2
输入
[0,1,4,5,6,7]
4输出
[4, 5, 6,7]说明:
根据第三亲和性调度原则,必须选择同一链路剩余可用的处理器数量为4个的环
二、题目解析
三、代码参考
暂时没有解出来,后续更新,有思路的可以在评论区讨论
作者:KJ.JK
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习