2
def minAreaFreeRect(self, points: List[List[int]]) -> float:11
return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1])19
lij = length2(points[i], points[j])24
# given i->j line, add to k to find l25
dx, dy = points[j][0] - points[i][0], points[j][1] - points[i][1]27
pl = (points[k][0] + dx, points[k][1] + dy)31
lik = length2(points[i], points[k])32
ljk = length2(points[j], points[k])34
lil = length2(points[i], pl)35
ljl = length2(points[j], pl)36
lkl = length2(points[k], pl)38
if lij == lkl and lik == ljl and lil == ljk:40
best, sqrt(lij * lik * lil) / sqrt(max(lij, lik, lil))