You have a list of points in the plane. Return the area of the largest triangle that can be formed by any 3 of the points.
Example: Input: points = [[0,0],[0,1],[1,0],[0,2],[2,0]] Output: 2 Explanation: The five points are show in the figure below. The red triangle is the largest.
Notes:
3 <= points.length <= 50. No points will be duplicated. -50 <= points[i][j] <= 50. Answers within 10^-6 of the true value will be accepted as correct.
public class Solution {
public double LargestTriangleArea(int[][] points) {
double maxArea = 0;
for(int i=0;i<points.Length;i++){
for(int j=0;j<points.Length;j++){
for(int k=0;k<points.Length;k++){
double a = Math.Sqrt(Math.Pow(points[i][0]-points[j][0],2)+Math.Pow(points[i][1]-points[j][1],2));
double b = Math.Sqrt(Math.Pow(points[i][0]-points[k][0],2)+Math.Pow(points[i][1]-points[k][1],2));
double c = Math.Sqrt(Math.Pow(points[j][0]-points[k][0],2)+Math.Pow(points[j][1]-points[k][1],2));
double s = (a+b+c)/2;
double area = Math.Sqrt(s*(s-b)*(s-c)*(s-a));
if(area>maxArea){
maxArea = area;
}
}
}
}
return maxArea;
}
}
Time Complexity: O(n^3)
Space Complexity: O(1)


