给你一个由 X-Y 平面上的点组成的数组 points
,其中 points[i] = [xi, yi]
。从其中取任意三个不同的点组成三角形,返回能组成的最大三角形的面积。与真实值误差在 10-5
内的答案将会视为正确答案。
示例 1:
输入:points = [[0,0],[0,1],[1,0],[0,2],[2,0]] 输出:2.00000 解释:输入中的 5 个点如上图所示,红色的三角形面积最大。
示例 2:
输入:points = [[1,0],[0,0],[0,1]] 输出:0.50000
class Solution:
def largestTriangleArea(self, points: List[List[int]]) -> float:
def area(x1, y1, x2, y2, x3, y3):
# Calculate the area of triangle using Heron's formula
return 0.5 * abs(x1*(y2-y3) + x2*(y3-y1) + x3*(y1-y2))
n = len(points)
max_area = 0
# Iterate over all possible triplets of points
for i in range(n):
x1, y1 = points[i]
for j in range(i+1, n):
x2, y2 = points[j]
for k in range(j+1, n):
x3, y3 = points[k]
# Calculate area of triangle formed by points i, j, k
curr_area = area(x1, y1, x2, y2, x3, y3)
# Update max_area if current area is larger
max_area = max(max_area, curr_area)
return max_area
海伦公式 加三层循环