1005. 三角形最大面积
平面上有一系列点。返回由其中三个点可以形成的三角形最大面积。
样例
样例:
输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]]
输出: 2
解释:
这五个点如图所示,红色三角形面积最大。
注意事项
3 <= points.length <= 50.
点不会重复。
-50 <= points[i][j] <= 50.
结果误差在10^(-6)以内可以被认为是正确的。
public class Solution {
/**
* @param points: List[List[int]]
* @return: return a double
*/
public double largestTriangleArea(int[][] points) {
// write your code here
double max = 0;
double ret = 0;
for (int[] point : points) {
int x1 = point[0];
int y1 = point[1];
for (int j = 1; j < points.length; j++) {
int x2 = points[j][0];
int y2 = points[j][1];
for (int k = 2; k < points.length; k++) {
int x3 = points[k][0];
int y3 = points[k][1];
max = 0.5d * Math.abs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2));
ret = Math.max(max, ret);
// System.out.println(max + "," + i);
}
}
}
return ret;
}
}