当前位置: 面试刷题>> 矩形重叠 (经典算法题500道)


### 题目描述补充 题目:矩形重叠 给定两个矩形的坐标信息,判断这两个矩形是否重叠。每个矩形由其左下角的点 `(x1, y1)` 和右上角的点 `(x2, y2)` 定义。如果两个矩形有至少一个公共点,则认为它们是重叠的。 ### 示例 假设有以下两个矩形: - 矩形A:左下角 `(1, 1)`,右上角 `(4, 4)` - 矩形B:左下角 `(3, 3)`,右上角 `(6, 6)` 这两个矩形是重叠的,因为它们有公共区域。 ### 解题思路 为了判断两个矩形是否重叠,可以检查一个矩形的右下角是否位于另一个矩形的左上方,或者一个矩形的左下角是否位于另一个矩形的右下方。如果这两种情况中的任何一种成立,则矩形重叠。 ### 示例代码 #### PHP 示例 ```php function isRectangleOverlap($rec1, $rec2) { list($x1, $y1, $x2, $y2) = $rec1; list($a, $b, $c, $d) = $rec2; // 检查一个矩形的右下角是否在另一个矩形的左上方 if ($x2 > $a && $y1 < $d) { return true; } // 检查一个矩形的左下角是否在另一个矩形的右下方 if ($x1 < $c && $y2 > $b) { return true; } return false; } // 测试示例 $rec1 = [1, 1, 4, 4]; $rec2 = [3, 3, 6, 6]; echo isRectangleOverlap($rec1, $rec2) ? "重叠" : "不重叠"; ``` #### Python 示例 ```python def isRectangleOverlap(rec1, rec2): x1, y1, x2, y2 = rec1 a, b, c, d = rec2 # 检查一个矩形的右下角是否在另一个矩形的左上方 if x2 > a and y1 < d: return True # 检查一个矩形的左下角是否在另一个矩形的右下方 if x1 < c and y2 > b: return True return False # 测试示例 rec1 = [1, 1, 4, 4] rec2 = [3, 3, 6, 6] print("重叠" if isRectangleOverlap(rec1, rec2) else "不重叠") ``` #### JavaScript 示例 ```javascript function isRectangleOverlap(rec1, rec2) { const [x1, y1, x2, y2] = rec1; const [a, b, c, d] = rec2; // 检查一个矩形的右下角是否在另一个矩形的左上方 if (x2 > a && y1 < d) { return true; } // 检查一个矩形的左下角是否在另一个矩形的右下方 if (x1 < c && y2 > b) { return true; } return false; } // 测试示例 const rec1 = [1, 1, 4, 4]; const rec2 = [3, 3, 6, 6]; console.log(isRectangleOverlap(rec1, rec2) ? "重叠" : "不重叠"); ``` 码小课网站中有更多相关内容分享给大家学习,包括各种算法的实现和优化技巧,欢迎访问学习。
推荐面试题