补充: 这道题如果用平移法,应该也是可以做的,个人猜测应该会更复杂一些。
class Solution:
def isRectangleOverlap(self, rec1: List[int], rec2: List[int]) -> bool:
# 这里的逻辑是没有问题的。
# 问题出现在如何确定哪个矩形在上,哪个矩形在下。
# 这样排序之后只能分出上下,不能分出左右
rec1, rec2 = sorted([rec1, rec2], key=lambda x: (x[3]))
# print(rec1, rec2)
# 因此需要按照左右来分情况。。。
if rec1[2] < rec2[2]:
# print("hello")
return rec1[2] > rec2[0] and rec1[3] > rec2[1]
else:
# print("hi")
return rec2[2] > rec1[0] and rec2[1] < rec1[3]
网友评论