2022年4月16日360笔试

第一题(水):无

第二题(数学):仓库中有边长为1的正方体货物整齐的摆放为长方体,一天小偷偷了货物(偷完后货物依旧是长方体),定义货物被偷前长宽高为X,Y,Z,,货物被偷后长宽高为x, y, z,已知被偷后的货物体积为n,老板想知道自己最坏损失了多少


function getPreV(x, y, z){
    x += 2;
    y += 1;
    z += 2;
    return x * y * z;
}
function second_360_4_16(n){
    let res = 0;
    for(let y = 1; y <= n; y = y + 1){
        // 通过求导得出 x = 2 * y = z 时原体积与目前体积的差收益最大 遍历y避免除法
        // x  = z = sqrt(n / y)
        let tmp = Math.floor(n / y);
        let x = Math.floor(Math.sqrt(tmp));
        let z = n / y / x;
        res = Math.max(res, getPreV(x, y, z) - n);
                
        // x = 2 * y,z = n / y / x, 此处为修改
        x = y * 2;
        if(x * y > n || n % (x * y) != 0) continue;
        z = n / x / y;
        res = Math.max(res, getPreV(x, y, z) - n);
    }
    return res;
}        

考试时通过91%,后修改未知结果

全部评论

相关推荐

喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务