GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — JavaScript/Dynamic-Programming/MaxProductOfThree.js at master · Jerad551/JavaScript Expand file tree/ Copy pathMaxProductOfThree.jsMore file actions 38 lines (38 loc) · 1.1 KB / Copy pathMaxProductOfThree.jsFile metadata and controls38 lines (38 loc) · 1.1 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 /** * Given an array of numbers, return the maximum product * of 3 numbers from the array * https://wsvincent.com/javascript-three-sum-highest-product-of-three-numbers/ * @param {number[]} arrayItems * @returns number */ export function maxProductOfThree(arrayItems) { // if size is less than 3, no triplet exists const n = arrayItems.length if (n < 3) throw new Error('Triplet cannot exist with the given array') let max1 = arrayItems[0] let max2 = null let max3 = null let min1 = arrayItems[0] let min2 = null for (let i = 1; i < n; i++) { if (arrayItems[i] > max1) { max3 = max2 max2 = max1 max1 = arrayItems[i] } else if (max2 === null || arrayItems[i] > max2) { max3 = max2 max2 = arrayItems[i] } else if (max3 === null || arrayItems[i] > max3) { max3 = arrayItems[i] } if (arrayItems[i] < min1) { min2 = min1 min1 = arrayItems[i] } else if (min2 === null || arrayItems[i] < min2) { min2 = arrayItems[i] } } const prod1 = max1 * max2 * max3 const prod2 = max1 * min1 * min2 return Math.max(prod1, prod2) } |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |