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%,后修改未知结果