華為OD機(jī)試-處理器問題
題目描述
某公司研發(fā)了一款高性能AI處理器。每臺(tái)物理設(shè)備具備8顆AI處理器,編號(hào)分別為0、1、2、3、4、5、6、7。
編號(hào)0-3的處理器處于同一個(gè)鏈路中,編號(hào)4-7的處理器處于另外一個(gè)鏈路中,不同鏈路中的處理器不能通信。
現(xiàn)給定服務(wù)器可用的處理器編號(hào)數(shù)組array,以及任務(wù)申請的處理器數(shù)量num,找出符合下列親和性調(diào)度原則的芯片組合。
如果不存在符合要求的組合,則返回空列表。
親和性調(diào)度原則:
如果申請?zhí)幚砥鱾€(gè)數(shù)為1,則選擇同一鏈路,剩余可用的處理器數(shù)量為1個(gè)的最佳,其次是剩余3個(gè)的為次佳,然后是剩余2個(gè),最后是剩余4個(gè)。
如果申請?zhí)幚砥鱾€(gè)數(shù)為2,則選擇同一鏈路剩余可用的處理器數(shù)量2個(gè)的為最佳,其次是剩余4個(gè),最后是剩余3個(gè)。
如果申請?zhí)幚砥鱾€(gè)數(shù)為4,則必須選擇同一鏈路剩余可用的處理器數(shù)量為4個(gè)。
如果申請?zhí)幚砥鱾€(gè)數(shù)為8,則申請節(jié)點(diǎn)所有8個(gè)處理器。
提示:
任務(wù)申請的處理器數(shù)量只能是1、2、4、8。
編號(hào)0-3的處理器處于一個(gè)鏈路,編號(hào)4-7的處理器處于另外一個(gè)鏈路。
處理器編號(hào)唯一,且不存在相同編號(hào)處理器。
輸入描述
輸入包含可用的處理器編號(hào)數(shù)組array,以及任務(wù)申請的處理器數(shù)量num兩個(gè)部分。
第一行為array,第二行為num。例如:
[0, 1, 4, 5, 6, 7]
表示當(dāng)前編號(hào)為0、1、4、5、6、7的處理器可用。任務(wù)申請1個(gè)處理器。
0 <= array.length <= 8
0 <= array[i] <= 7
num in [1, 2, 4, 8]
輸出描述
輸出為組合列表,當(dāng)array=[0,1,4,5,6,7],num=1 時(shí),輸出為[[0], [1]]。
示例1 輸入輸出示例僅供調(diào)試,后臺(tái)判題數(shù)據(jù)一般不包含示例
輸入
[0, 1, 4, 5, 6, 7]
輸出
[[0], [1]]
說明
根據(jù)第一條親和性調(diào)度原則,在剩余兩個(gè)處理器的鏈路(0, 1, 2, 3)中選擇處理器。
由于只有0和1可用,則返回任意一顆處理器即可。
————————————————
版權(quán)聲明:本文為CSDN博主「MISAYAONE」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://renjie.blog.csdn.net/article/details/128199445
Java 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128199445
Python實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128642567
C++ 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128174718
JavaScript實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/129185230
C語言版本持續(xù)更新中