LeetCode 836. 矩形重叠
题目描述
思路分析
解法一:坐标范围判断(推荐)
核心思路:
- 两个矩形有重叠面积,等价于在 x 轴与 y 轴的投影都严格重叠。
- 若一方在另一方左/右/上/下完全分离,则不重叠。
- 用排除法判断是否分离即可。
复杂度分析:
- 时间复杂度:O(1),仅常数判断。
- 空间复杂度:O(1),仅使用常数额外空间。
class Solution {
public boolean isRectangleOverlap(int[] rec1, int[] rec2) {
// 不重叠的四种情况
boolean separated = rec1[2] <= rec2[0]
|| rec2[2] <= rec1[0]
|| rec1[3] <= rec2[1]
|| rec2[3] <= rec1[1];
return !separated;
}
}
func isRectangleOverlap(rec1 []int, rec2 []int) bool {
// 判断是否完全分离
separated := rec1[2] <= rec2[0] || rec2[2] <= rec1[0] ||
rec1[3] <= rec2[1] || rec2[3] <= rec1[1]
return !separated
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 223. 矩形面积 | 中等 | 几何 |
| 593. 有效的正方形 | 中等 | 几何 |
| 391. 完美矩形 | 困难 | 扫描线 |
| 850. 矩形面积 II | 困难 | 扫描线 |
| 939. 最小面积矩形 | 中等 | 几何 |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!
