算法题记录【华为od】AI处理器组合

题目描述

 

 思路分析

        这个题感觉更像优先级的问题,但是题目里面又没有讲清楚,不太理解;本人是按照题目描述以及自我理解做的,感觉还是不对劲.

代码解析

let input = [0, 1, 4, 5, 6, 7], arr1 = [], arr2 = []
let input1 = 3;
//边界值判定 若可用服务器数量少于任务请求数量 则返回-1
if (input.length < input1) return -1
let count1 = 0, count2 = 0
// 遍历链路0-3,如果剩余可用的处理器数量为1个,则选择这个链路
for (let j = 0; j < input.length; j++) {
  if (input[j] < 4) {
    count1++
  } else {
    count2++
  }
}
let len1 = count1, len2 = count2
for (let i = 0; i < Math.min(input1, Math.min(len1, len2)); i++) {
  const res = selectChips(i) + selectChips(input1 - i)
  console.log('res=>', res, i, input1 - i);
  count1 = len1
  count2 = len2
}
function selectChips (num) {
  if (num == 0) return 1
  if (num > 4) return 0
  if (num === 1) {
    if (count1 == 1) {
      count1 = count1 - 1
      console.log('0-3恰好有一个处理器=要一个>',);
    }
    else if (count2 == 1) {
      count2 = count2 - 1
      console.log('4-7恰好有一个处理器=要一个>',);
    }
    else if (count1 == 3) {
      count1 = count1 - 1
      console.log('0-3恰好有三个处理器=要一个>',);
    }
    else if (count2 == 3) {
      count2 = count2 - 1
      console.log('4-7恰好有三个处理器=要一个>',);
    }
    else if (count1 == 2) {
      count1 = count1 - 1
      console.log('0-3恰好有俩个处理器=要一个>',);
    }
    else if (count2 == 2) {
      count2 = count2 - 1
      console.log('4-7恰好有俩个处理器=要一个>',);
    }
    else if (count1 == 4) {
      count1 = count1 - 1
      console.log('0-3恰好有四个处理器=要一个>',);
    }
    else if (count2 == 4) {
      count2 = count2 - 1
      console.log('4-7恰好有四个处理器=要一个>',);
    }
    else {
      console.log('一个都没=>',);
      return 0
    }
    return 1;
  } else if (num === 2) {
    if (count1 == 2) {
      count1 = count1 - 2
      console.log('0-3恰好有俩个处理器=要俩个>',);
    }
    else if (count2 == 2) {
      count2 = count2 - 2
      console.log('4-7恰好有俩个处理器=要俩个>',);
    }
    else if (count1 == 4) {
      count1 = count1 - 2
      console.log('0-3恰好有四个处理器=要俩个>',);
    }
    else if (count2 == 4) {
      count2 = count2 - 2
      console.log('4-7恰好有四个处理器=要俩个>',);
    }
    else if (count1 == 3) {
      count1 = count1 - 2
      console.log('0-3恰好有三个处理器=要俩个>',);
    }
    else if (count2 == 3) {
      count2 = count2 - 2
      console.log('4-7恰好有三个处理器=要俩个>',);
    }
    else {
      console.log('一个都没=>',);
      return 0
    }
    // 剩余可用的处理器数量都不是2个或者4个,则返回空列表
    return 1;
  } else if (num === 3) {
    // 遍历链路0-3,如果剩余可用的处理器数量为4个,则选择这个链路
    if (count1 == 3) {
      count1 = count1 - 3
      console.log('0-3恰好有三个处理器=要三个>',);
    }
    else if (count2 == 3) {
      count2 = count2 - 3
      console.log('4-7恰好有三个处理器=要三个>',);
    }
    else if (count1 == 4) {
      count1 = count1 - 3
      console.log('0-3恰好有四个处理器=要三个>',);
    }
    else if (count2 == 4) {
      count2 = count2 - 3
      console.log('4-7恰好有四个处理器=要三个>',);
    }
    else {
      console.log('一个都没=>',);
      return 0
    }
    // 剩余可用的处理器数量都不是4个,则返回空列表
    return 1;
  }
  else if (num === 4) {
    // 遍历链路0-3,如果剩余可用的处理器数量为4个,则选择这个链路
    if (count1 == 4) {
      count1 = count1 - 4;
      console.log('0-3恰好有四个处理器=要四个>',);
    }
    else if (count2 == 4) {
      count2 = count2 - 4
      console.log('4-7恰好有四个处理器=要四个>',);
    }
    else {
      console.log('一个都没=>',);
      return 0
    }
    // 剩余可用的处理器数量都不是4个,则返回空列表
    return 1;
  }
}

后话

只是记录,正在找工作中,各位老板缺前端的可以私信,会vue,react,ts,js,22届本科毕业,一年工作经验

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值