华为OD机试 - 处理器问题(Java & JS & Python & C & C++)

这篇博客介绍了华为在线评估(OD)中的一道题目,涉及找到特定数值的处理器组合。示例使用Java、JavaScript实现,提供测试用例。博主反思面试表现,计划加强复习,分享了包括JAVA、MySQL、算法、Redis、JVM、Spring等在内的面试学习资源。
摘要由CSDN通过智能技术生成
link1 = [i for i in array if 0 <= i <= 3]  
link2 = [i for i in array if 4 <= i <= 7]  
  
# 根据num的值和亲和性调度原则确定最佳组合 
if num == 1:  
    # 选择剩余处理器最多的链路中的一颗处理器 
    if len(link1) >= 2:  
        return [[link1[0]]]  
    elif len(link2) >= 2:  
        return [[link2[0]]]  
    else:  
        return []  
elif num == 2:  
    # 选择剩余处理器最多的链路中的两颗处理器 
    if len(link1) >= 2:  
        return [[link1[0], link1[1]]]  
    elif len(link2) >= 2:  
        return [[link2[0], link2[1]]]  
    else:  
        return []  
elif num == 4:  
    # 必须选择剩余处理器为4个的链路 
    if len(link1) == 4:  
        return [[link1[0], link1[1], link1[2], link1[3]]]  
    elif len(link2) == 4:  
        return [[link2[0], link2[1], link2[2], link2[3]]]  
    else:  
        return []  
elif num == 8:  
    # 必须选择所有处理器 
    if len(array) == 8:  
        return [array]  
    else:  
        return []  
else:  
    return []  

测试用例

array1 = [0, 1, 4, 5, 6, 7]
num1 = 1
print(find_processor_combinations(array1, num1)) # 输出应为 [[0], [1]]

array2 = [0, 1, 4, 5, 6, 7]
num2 = 4
print(find_processor_combinations(array2, num2

  • 21
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值