1问题描述
2题解-区域重叠
将问题转化为了区域重叠问题,可知要矩形重叠需要在x轴和y轴都有区域重叠,就x轴方向讨论,在x轴方向上重叠情况比较多,但是不重叠情况就两种即矩形1右节点x坐标小于等于矩形二左节点x坐标,或者矩形1左节点x坐标大于等于矩形2右节点x坐标。
class Solution:
def isRectangleOverlap(self, rec1: List[int], rec2: List[int]) -> bool:
x_overlap=not(rec1[2]<=rec2[0] or rec1[0]>=rec2[2])
y_overlap=not(rec1[3]<=rec2[1] or rec1[1]>=rec2[3])
return x_overlap and y_overlap
3 题解-检查区域
class Solution(object):
def isRectangleOverlap(self, rec1, rec2):
def intersect(p_left, p_right, q_left, q_right):
return min(p_right, q_right) > max(p_left, q_left)
return (intersect(rec1[0], rec1[2], rec2[0], rec2[2]) and
intersect(rec1[1], rec1[3], rec2[1], rec2[3]))