812. Largest Triangle Area

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.

 

Approach #1: Math. [Java]

class Solution {
    public double largestTriangleArea(int[][] points) {
        double res = 0;
        for (int[] i : points) {
            for (int[] j : points) {
                for (int[] k : points) {
                    res = Math.max(res, 0.5 * Math.abs(i[0] * j[1] + j[0] * k[1] + k[0] * i[1] - j[0] * i[1] - k[0] * j[1] - i[0] * k[1]));
                }
            }
        }
        return res;
    }
}

  

Analysis:

 

Reference:

https://leetcode.com/problems/largest-triangle-area/discuss/122711/C%2B%2BJavaPython-Solution-with-Explanation-and-Prove

 

posted @ 2019-05-17 21:59  Veritas_des_Liberty  阅读(277)  评论(0编辑  收藏  举报