在一组数字中,找到三个中任何一个的最高乘积

时间:2018-12-08 17:45:42

标签: javascript arrays

给出一个示例$sizeList = new stdClass(); foreach ($results as $row) { $sizeList->{$row['Locker']} = $row['count(*)']; } echo json_encode(array('SizeList' => $sizeList)); 的数组,找到其中三个数字中任何一个可能产生的最高乘积。

有关在Python中解决同一问题的相关问题,该问题未得到代码Finding highest product of three numbers的答案。

对于第一段中提供的示例数组,预期结果为[-7, 8, -3, 4, -2, -7, 7]

2 个答案:

答案 0 :(得分:0)

最好的乘积是392max1 * max2 * max3,因为两个负值相乘会得到正值,所以:

max1 * min1 * min2

答案 1 :(得分:0)

您可以尝试

let arr = [-7, 8, -3, 4, -2, -7, 7];

let op = arr.sort((a,b)=>b-a)
let max1 = op.slice(0,3).reduce((a,b)=>a*b,1);
let max2 = op.slice(-2).reduce((a,b)=>a*b,1)*op[0];
let final = Math.max(max1,max2)

console.log(final);