8.15美团笔试机器人爆炸题前端代码

// 思路 只有坐标奇偶性相同的向左移动的机器人和向右移动的机器人存在爆炸可能,因此分别存储
let count = 10
const res = new Array(count).fill(-1) //初始化结果
const RarrOdd = [], RarrEven = [], LarrOdd = [], LarrEven = []
const test = [['94', 'R'], ['74', 'L'], ['90', 'L'], ['75', 'R'], ['37', 'R'], ['99', 'R'], ['62', 'R'], ['4', 'L'], ['92', 'L'], ['44', 'R']]
for (let i = 0; i < count; i++) {
    let arr = test[i]
    if (arr[1] == 'R') {
        arr[0] % 2 == 0 ? RarrEven.push([arr[0] * 1, i]) : RarrOdd.push([arr[0] * 1, i])
    } else {
        arr[0] % 2 == 0 ? LarrEven.push([arr[0] * 1, i]) : LarrOdd.push([arr[0] * 1, i])
    }
}
function getBoomCo(Rarr, Larr) {
    let evenDis = []
    //遍历获取每个向左移动的机器人与向右移动机器人的爆炸时间
    for (let i = 0; i < Rarr.length; i++) {
        for (let j = 0; j < Larr.length; j++) {
            if (Larr[j][0] > Rarr[i][0]) {
                evenDis.push([Larr[j][0] - Rarr[i][0], Rarr[i][1], Larr[j][1]])
            }
        }
    }
    //排序后从最小爆炸时间算起
    evenDis.sort((a, b) => a[0] - b[0])
    for (let i = 0; i < evenDis.length; i++) {
        const [dis, Rindex, Lindex] = evenDis[i]
        //如果尚未爆炸,存储爆炸时间
        if (res[Rindex] == -1 && res[Lindex] == -1) {
            res[Rindex] = dis / 2
            res[Lindex] = dis / 2
        }
    }
}
//奇偶性分别调用
getBoomCo(RarrOdd, LarrOdd)
getBoomCo(RarrEven, LarrEven)
console.log(res);
笔试唯一A了的一道题,第一题看着那么简单,结果就过了18%,直接哭出声#美团笔试##笔试题目##美团#
全部评论
楼主收到面试消息了嘛
点赞 回复 分享
发布于 2021-08-29 21:04

相关推荐

11-27 12:36
已编辑
门头沟学院 前端工程师
Apries:这个阶段来说,很厉害很厉害了,不过写的简历确实不是很行,优势删掉吧,其他的还行
点赞 评论 收藏
分享
霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务