Leetcode 963.Minimum Area Rectan

2018-12-23  本文已影响0人  lee_5a30
**Python:**
def minAreaFreeRect(self, points):
    points = [complex(*z) for z in sorted(points)]
    seen = collections.defaultdict(list)
    for P, Q in itertools.combinations(points, 2):
        seen[Q - P].append((P + Q) / 2)

    ans = float("inf")
    for A, candidates in seen.iteritems():
        for P, Q in itertools.combinations(candidates, 2):
            if A.real * (P - Q).real == -A.imag * (P - Q).imag:
                ans = min(ans, abs(A) * abs(P - Q))
    return ans if ans < float("inf") else 0
上一篇 下一篇

猜你喜欢

热点阅读