LeetCode 五月打卡-day15
Posted 王六六的IT日常
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 五月打卡-day15相关的知识,希望对你有一定的参考价值。
812. 最大三角形面积
设三角形三个顶点的坐标为
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
(
x
3
,
y
3
)
(x_1,y_1),(x_2,y_2),(x_3,y_3)
(x1,y1),(x2,y2),(x3,y3),则三角形面积 S 可以用行列式的绝对值表示:
∣
1
/
2
∗
[
x
1
(
y
2
−
y
3
)
+
x
2
(
y
3
−
y
1
)
+
x
3
(
y
1
−
y
2
)
∣
| 1/2 * [x1(y2 - y3) + x2(y3-y1) + x3(y1- y2)|
∣1/2∗[x1(y2−y3)+x2(y3−y1)+x3(y1−y2)∣
计算完结果,取绝对值abs,因为不知道点与点之间的相对位置。如果为负数,就需要取绝对值,因为面积不能为负数。
枚举:枚举所有的三角形,然后计算三角形的面积并找出最大的三角形面积。
class Solution
public double largestTriangleArea(int[][] points)
int n = points.length;
double ret = 0.0;
for (int i = 0; i < n; i++)
for (int j = i + 1; j < n; j++)
for (int k = j + 1; k < n; k++)
ret = Math.max(ret, triangleArea(points[i][0], points[i][1], points[j][0], points[j][1], points[k][0], points[k][1]));
return ret;
public double triangleArea(int x1, int y1, int x2, int y2, int x3, int y3)
return 0.5 * Math.abs(x1 * y2 + x2 * y3 + x3 * y1 - x1 * y3 - x2 * y1 - x3 * y2);
以上是关于LeetCode 五月打卡-day15的主要内容,如果未能解决你的问题,请参考以下文章