题解 | 矩形重叠
矩形重叠
https://www.nowcoder.com/practice/53acad54f18444a9b714acd75115d817
题目:
给定两个矩形,分别以四个数字 [x1,y1,x2,y2] 表示,其中 (x1,y1) 表示矩形左下角,(x2,y2) 表示矩形右上角(题目这里写错了,两个下角是无法确定一个矩形的),矩形的上下边平行于 x 轴,左右边平行于 y 轴。 如果两个矩形相交的面积为正,则两矩形重叠。如果重叠则输出 true ,否则输出 false
解题思路:
找到重叠的矩形
如果两个矩形重叠
- 那么重叠的矩形
左下角x一定是两个矩形左下角x的max值,右上角x一定是两个矩形右上角的min值 - 重叠矩形
左下角y一定是两个矩形左下角y的max值,右上角y一定是两个矩形右上角的min值 - 现在,我们只需要判断这个“重叠”出来的矩形,是不是个矩形,即,我们得到的重叠矩形右上角,在不在左下角的右上方
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param r1 int整型一维数组
# @param r2 int整型一维数组
# @return bool布尔型
#
class Solution:
def overlapRec(self, r1: List[int], r2: List[int]) -> bool:
# write code here
return (min(r1[2], r2[2]) > max(r1[0], r2[0])) and (max(r1[1], r2[1]) < min(r1[3], r2[3]))
#要确保矩阵有重叠,则:
#最小的x2要大于最大的x1,且最大的y1要小于最小的y2
上海得物信息集团有限公司公司福利 1243人发布

