首页>>后端>>java->812. 最大三角形面积 : 简单模拟题

812. 最大三角形面积 : 简单模拟题

时间:2023-12-05 本站 点击:0

题目描述

这是 LeetCode 上的 「812. 最大三角形面积」 ,难度为 「简单」。

Tag : 「模拟」

给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积。

示例:

输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]]输出: 2解释: 这五个点如下图所示。组成的橙色三角形是最大的,面积为2。

注意:

![3 <= points.length <= 50.]()

不存在重复的点。

![-50 <= points[i][j] <= 50]()

结果误差值在 ![10^{-6}]() 以内都认为是正确答案。

模拟

根据题意模拟即可:枚举三角形三个顶点并计算面积。

代码:

class Solution {    public double largestTriangleArea(int[][] ps) {        int n = ps.length;        double ans = 0;        for (int i = 0; i < n; i++) {            for (int j = i + 1; j < n; j++) {                for (int k = j + 1; k < n; k++) {                    int cur = cross(ps[j][0] - ps[i][0], ps[j][1] - ps[i][1], ps[k][0] - ps[i][0], ps[k][1] - ps[i][1]);                    ans = Math.max(ans, Math.abs(cur / 2.0));                 }            }        }        return ans;    }    int cross(int a, int b, int c, int d) {        return a * d - c * b;    }}

时间复杂度:![O(n^3)]()

空间复杂度:![O(1)]()

最后

这是我们「刷穿 LeetCode」系列文章的第 No.812 篇,系列开始于 2021/01/01,截止于起始日 LeetCode 上共有 1916 道题目,部分是有锁题,我们将先把所有不带锁的题目刷完。

在这个系列文章里面,除了讲解解题思路以外,还会尽可能给出最为简洁的代码。如果涉及通解还会相应的代码模板。

为了方便各位同学能够电脑上进行调试和提交代码,我建立了相关的仓库:https://github.com/SharingSource/LogicStack-LeetCode 。

在仓库地址里,你可以看到系列文章的题解链接、系列文章的相应代码、LeetCode 原题链接和其他优选题解。

原文:https://juejin.cn/post/7097792112661364773


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/java/12243.html