首页 > V2EX > V2EX-一个面试题 岗位是 FreeLancer 自己写了下
2021
10-15

V2EX-一个面试题 岗位是 FreeLancer 自己写了下

KomiSans:

如图:
V2EX-一个面试题 岗位是 FreeLancer 自己写了下 - 第1张  | 牛叻网(NiuL.Net)

我的个人解法->

// 判断迁移数组的总和是否为 15
function filcheck(ar) {
    return ar.reduce((x, k) => {
        return x + k
    }, 0) === 15;
}

function entrance() {
    // 定义原数据数组
    var constArr = [3, 5, 7];
    // 定义初始迁移数据数组
    var arrReserver = [0, 0, 0];
    // 奇偶数定义 回合制玩家判断
    var odvar = 0;
    // 循环判断条件
    while (!filcheck(arrReserver)) {
        // 当数组中的所有元素已被移除后直接跳出循环
        if (arrReserver.length === 1) break;
        // 生成数组中的随机下标
        var arrIdx = Math.floor(Math.random() * (constArr.length));
        // 两数组同位置上元素的偏差 代表还剩多少物件
        var bxa = constArr[arrIdx] - arrReserver[arrIdx];
        // 当剩余数量为 0 时 移除该行
        if (bxa === 0) {
            constArr.splice(arrIdx, 1);
            arrReserver.splice(arrIdx, 1);
            continue;
        }
        // 迁移数据数组对应行数量添加
        arrReserver[arrIdx] += Math.floor((Math.random() * (bxa)) + 1);
        // 代表玩家本身
        odvar++;
    }
    // 利用回合制进行判断是哪位玩家失败
    return odvar % 2 === 0 ? "player1" : "player2";
}

from V2EX-最新主题 https://ift.tt/3DDS9iU

最后编辑:
作者:分享菌
这个作者貌似有点懒,什么都没有留下。

留下一个回复