Max Points on a Line LeetCode solution in JavaScript
1/**2* @param {number[][]} points3* @return {number}4*/56var maxPoints = function (points) {7if (points.length === 1) {8return 1;9}1011const slopes = {};12let dx, dy;13let xbase, ybase;14let xref, yref, key;15const INFINITE_SLOPE = "infinite";1617for (let i = 0; i < points.length; i++) {18[xbase, ybase] = points[i];1920for (let j = i + 1; j < points.length; j++) {21[xref, yref] = points[j];2223if (xref === xbase) {24key = `x = ${xref}`;25} else {26dx = xref - xbase;27dy = yref - ybase;2829let m = dy / dx;30let c = yref - m * xref;3132m = m.toFixed(4);33c = c.toFixed(4);3435key = `y = ${m}x + ${c}`;36}3738slopes[key] || (slopes[key] = 0);39slopes[key]++;40}41}4243const maxPairs = Math.max(...Object.values(slopes));4445if (maxPairs === 2) {46return 2;47}4849for (let i = 1; i <= 300; i++) {50if ((i * (i - 1)) / 2 === maxPairs) {51return i;52}53}5455return 0;56};