A rectangle is represented as a list [x1, y1, x2, y2]
, where (x1, y1)
are the coordinates of its bottom-left corner, and (x2, y2)
are the coordinates of its top-right corner.
Two rectangles overlap if the area of their intersection is positive. To be clear, two rectangles that only touch at the corner or edges do not overlap.
Given two (axis-aligned) rectangles, return whether they overlap.
Example 1:
Input: rec1 = [0,0,2,2], rec2 = [1,1,3,3] Output: true
Example 2:
Input: rec1 = [0,0,1,1], rec2 = [1,0,2,1] Output: false
Notes:
- Both rectangles
rec1
andrec2
are lists of 4 integers. - All coordinates in rectangles will be between
-10^9
and10^9
.
LeetCode:链接
求矩形是否重叠。这题不用求重叠面积,所以可以把所有不重叠的情况列出来。
在判断的时候,从左到右,从上到下一共有四条线段。只需要按顺序确定的中间两条即可。
class Solution(object):
def isRectangleOverlap(self, rec1, rec2):
"""
:type rec1: List[int]
:type rec2: List[int]
:rtype: bool
"""
x1, y1, x2, y2 = rec1
x3, y3, x4, y4 = rec2
xmin = max(x1, x3)
xmax = min(x2, x4)
ymin = max(y1, y3)
ymax = min(y2, y4)
width = xmax - xmin
height = ymax - ymin
if width <= 0 or height <= 0:
return False
# size = width * height
return True