博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 812. 最大三角形面积(Largest Triangle Area)
阅读量:5076 次
发布时间:2019-06-12

本文共 1204 字,大约阅读时间需要 4 分钟。

目录

题目描述:

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

示例:

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

1615582-20190401161125676-1573348865.png

注意:

  • 3 <= points.length <= 50.
  • 不存在重复的点。
  • -50 <= points[i][j] <= 50.
  • 结果误差值在 10^-6 以内都认为是正确答案。

解法:

class Solution {public:    double largestTriangleArea(vector
>& points) { // ax + by + c = 0 line function // dist1^2 = (x1 - x2)^2 + (y1 - y2)^2 // dist2^2 = (ax1 + by1 + c)^2/((x1-x2)^2 + (y1-y2)^2) // S^2 = 1/4*(ax1 + by1 + c)^2 // (x-x1)*(y1-y2) - (y-y1)*(x1-x2) = 0 line function double area = 0; int sz = points.size(); for(int i = 0; i < sz; i++){ long long x1 = points[i][0], y1 = points[i][1]; for(int j = i+1; j < sz; j++){ long long x2 = points[j][0], y2 = points[j][1]; for(int k = j+1; k < sz; k++){ long long x3 = points[k][0], y3 = points[k][1]; double tmp = (x3-x1)*(y1-y2) - (y3-y1)*(x1-x2); area = max(area, tmp*tmp); } } } return 0.5*sqrt(area); }};

转载于:https://www.cnblogs.com/zhanzq/p/10637038.html

你可能感兴趣的文章
C++中的类访问控制
查看>>
我的第一篇博客
查看>>
通过iframe实现跨域通信
查看>>
Java线程状态及Thread类中的主要方法
查看>>
SVD神秘值分解
查看>>
HDU 2063 过山车 二分图题解
查看>>
CKEditor&ckfindtor
查看>>
程序在内存中的执行过程-1
查看>>
使用Google Weather API获取天气预报,中文支持
查看>>
电脑结构和CPU、内存、硬盘三者之间的关系
查看>>
Pyhton的发展历程
查看>>
[AT2172] [agc007_e] Shik and Travel
查看>>
SDK中WS_TABSTOP为什么不起作用
查看>>
java依赖的外部文件路径的获取
查看>>
UITextField的总结
查看>>
Spring中Bean的实例化与DI的过程
查看>>
Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图...
查看>>
4.三角形面积
查看>>
基础笔记5(file)
查看>>
财务供应链项目新手实施手记----(转)
查看>>