首页 > 刚搞完华为OD机试,对用JS的玩家太不友好了
头像
牛客780438361号
发布于 2021-09-02 14:21
+ 关注

刚搞完华为OD机试,对用JS的玩家太不友好了

三道题,两简单一难。

第一题

我的答案:
第一题的答案,我的答案应该是满分吧,两个测试用例都通过了,但是提交了 却只有81%的测试覆盖率。是因为我的JS?

// var arrLen = readline()
// var inputArr = readline().split(" ")
// var N = readLine()
// 去重后,排序,检测重叠,取数组首尾
var arrLen = 5
var inputArr = [3,2,3,4,2]
var N = 2

var arr = Array.from(new Set(inputArr))

var targetArr = arr.sort((a,b)=>a-b)

function getOutPut(arrLen,targetArr,N){
    if(2 * N + 1 > targetArr.length){
        console.log(-1)
        return
    }
     var minArr = targetArr.slice(0,N)
     var maxArr = targetArr.slice(targetArr.length - N,targetArr.length)
     var max =0;
     var min = 0;
     maxArr.forEach(item=>{
        max =  max + item
     })
     minArr.forEach(item=>{
        min =  min + item
     })
    console.log(max + min)
}

getOutPut(arrLen,targetArr,N)



第二题

第二题考得动态规划,我tm一个前端还是OD,直接放弃这道题了。

第三题

我的答案:
这个答案有他妈什么问题???? 为什么不给我通过? 为什么运行不出来?复杂度很高??? 我本地随便跑好吗?? 
垃圾评分系统!
// 栈与查找,easy
// var input =  readline().split(' ')
var input =  [1,2,2] // [9,3,5]
var output=[]
var arr = JSON.parse(JSON.stringify(input))
var target = []  

while(arr.length){
    if(arr[0] >= getMax(arr)){
        target.push(arr.splice(0,1)[0])
    }else{
        arr.push(arr.splice(0,1)[0])
    }
}

function getMax(arr){
    return  Math.max(...arr)
}

input.forEach(item=>{
   var index =  target.findIndex(subItem=>item===subItem)
   target[index] = 10 //避免重复时 多次选中 所以设置为一个不会存在的数字10
   output.push(index)
})

console.log(output)

唉,本来就是做着玩的,但是这个笔试要恶心一下我,不吐不快啊。

全部评论

(8) 回帖
加载中...
话题 回帖