Python 中最大的三角形面积
pythonserver side programmingprogramming更新于 2023/11/9 21:03:00
假设我们有一个平面上的点列表。我们必须找到由任意 3 个点可以形成的最大三角形的面积。
因此,如果输入为 [[0,0],[0,1],[1,0],[0,2],[2,0]],则输出将为 2
为了解决这个问题,我们将遵循以下步骤 −
- res := 0
- N := 点列表的大小
- 对于范围为 0 到 N - 2 的 i,执行
- 对于范围为 i + 1 到 N - 1 的 j,执行
- 对于 i + 2 到 N 范围内的 k,执行
- (x1, y1) := points[i],
- (x2, y2) := points[j],
- (x3, y3) := points[k]
- res := res 的最大值,0.5 * |x1 *(y2 - y3) + x2 *(y3 - y1) + x3 *(y1 - y2)
- 对于 i + 2 到 N 范围内的 k,执行
- 对于范围为 i + 1 到 N - 1 的 j,执行
- 返回 res
让我们看看下面的实现以便更好地理解 −
示例
class Solution: def largestTriangleArea(self, points): res = 0 N = len(points) for i in range(N - 2): for j in range(i + 1, N - 1): for k in range(i + 2, N): (x1, y1), (x2, y2), (x3, y3) = points[i],points[j],points[k] res = max(res, 0.5 * abs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2))) return res ob = Solution() print(ob.largestTriangleArea([[0,0],[0,1],[1,0],[0,2],[2,0]]))
输入
[[0,0],[0,1],[1,0],[0,2],[2,0]]
输出
2.0