题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个矩形和栅栏坐标,可以删除其中的一些栅栏,求其中最大的正方形面积(没有正方形就 -1)

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
class Solution:
def f(self, a:List[int], mx:int) -> Set[int]:
a += [1, mx]
a.sort()
return set(y-x for x, y in combinations(a, 2))

def maximizeSquareArea(self, m: int, n: int, hFences: List[int], vFences: List[int]) -> int:
MOD = 1_000_000_007
h, v = self.f(hFences, m), self.f(vFences, n)
ans = max(h & v, default=0)
return (ans * ans) % MOD if ans > 0 else -1