力扣 812. 最大三角形面积
给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积。
示例:
输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]]
输出: 2
解释:
这五个点如下图所示。组成的橙色三角形是最大的,面积为2。
注意:
3 <= points.length <= 50.
不存在重复的点。
-50 <= points[i][j] <= 50.
结果误差值在 10^-6 以内都认为是正确答案。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/largest-triangle-area
计算三角形面积的鞋带公式:
1 class Solution: 2 def largestTriangleArea(self, points: List[List[int]]) -> float: 3 def Det(pi, pj, pk): 4 return 0.5 * abs((pi[0]*pj[1]+pj[0]*pk[1]+pk[0]*pi[1]) - (pi[1]*pj[0]+pj[1]*pk[0]+pk[1]*pi[0])) 5 6 res = 0.0 7 l = len(points) 8 for i in range(l): 9 for j in range(i+1, l): 10 for k in range(j+1, l): 11 res = max(res, Det(points[i], points[j], points[k])) 12 return res