เราต้องหาผลคูณของสามตัวเลขในอาร์เรย์ที่ให้ผลคูณมากที่สุด อาจมีตัวเลขลบอยู่ในอาร์เรย์
สังเกตว่าผลคูณมากที่สุดจะเป็นค่าสูงกว่าระหว่าง: (min1 * min2 * max1) และ (max1 * max2 * max3)
ตัวอย่าง: [-10, 7, 29, 30, 5, -10, -70] → 30 * -10 * -70 = 21000
ตัวอย่างโค้ด
const arr = [-10, 7, 29, 30, 5, -10, -70];
const threeProduct = (arr = []) => {
const sorter = (a, b) => a - b;
arr.sort(sorter);
let pro1 = 1, pro2 = 1;
let len = arr.length - 1;
for (let i = len; i > len - 3; i--) { pro1 = pro1 * arr[i]; }
pro2 = arr[0] * arr[1] * arr[len];
return Math.max(pro1, pro2);
};
console.log(threeProduct(arr));
ผลลัพธ์
ค่าที่แสดงในคอนโซลจะเป็นดังนี้:
21000