812. Largest Triangle Area
题目简介
这题是一道纯数学的简单题
题目给我们一个参数 points
代表直角坐标上的若干个点,要求我们求出这些点能够构成的最大三角形面积
解题思路
这道题需要用到一个公式:https://en.wikipedia.org/wiki/Shoelace_formula
简单来说,平面直角坐标系的三角形面积可以通过:$\frac{1}{2}|(x_1y_2 - y_1x_2) + (x_2y_3 - y_2x_3) + (x_3y_1 - x_1y_3)|$ 来计算
然后我们用三个循环依次遍历所有的点就可以得到最大的面积了
Javascript
/**
* @param {number[][]} points
* @return {number}
*/
var largestTriangleArea = function (points) {
let maxArea = 0
const len = points.length
for (let i = 0; i < len; i++) {
for (let j = i + 1; j < len; j++) {
for (let k = j + 1; k < len; k++) {
const [x1, y1] = points[i]
const [x2, y2] = points[j]
const [x3, y3] = points[k]
const area = Math.abs((x1 * y2 - y1 * x2) + (x2 * y3 - y2 * x3) + (x3 * y1 - x1 * y3)) / 2
maxArea = Math.max(area, maxArea)
}
}
}
return maxArea
};