812. Largest Triangle Area

作者: fred_33c7 | 来源:发表于2018-07-24 10:41 被阅读0次

    题目地址:https://leetcode.com/problems/largest-triangle-area/description/
    大意:给定一系列坐标轴上的点,任意3个点为顶点可以画出一个三角形,返回画出最大面积三角形的面积。
    其实在坐标轴上三个点求三角形面积是有公式的:

    坐标轴上三角形面积公式
    这样的话就很好做了
    import itertools
    class Solution:
        def largestTriangleArea(self, points):
            """
            :type points: List[List[int]]
            :rtype: float
            """
            # S=(1/2)*(x1y2+x2y3+x3y1-x1y3-x2y1-x3y2)
            def size(p1,p2,p3):
                (x1, y1), (x2, y2), (x3, y3) = p1, p2, p3
                return 0.5 * abs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2))
    
            return max(size(a, b, c) for a, b, c in itertools.combinations(points, 3))
    

    知识点:
    itertools
    combinations(iterable, r)

    from itertools import combinations
    list(combinations('ABC', 2))
    >>>[('A', 'B'), ('A', 'C'), ('B', 'C')]
    

    相关文章

      网友评论

        本文标题:812. Largest Triangle Area

        本文链接:https://www.haomeiwen.com/subject/njremftx.html