LeetCode 836. 矩形重叠

题目描述

836. 矩形重叠

思路分析

image-20260329112332918

解法一:坐标范围判断(推荐)

核心思路

  • 两个矩形有重叠面积,等价于在 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. 最小面积矩形 中等 几何
本文作者:
本文链接: https://hgnulb.github.io/blog/2025/98665301
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!