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(y2y3)+x2(y3y1)+x3(y1y2)

计算完结果,取绝对值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的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 五月打卡-day01

LeetCode 五月打卡-day19

LeetCode 五月打卡-day07

LeetCode 五月打卡-day20

LeetCode 五月打卡-day08

LeetCode 五月打卡-day13