836. 矩形重叠

题目:矩形重叠

矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。

如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。

给出两个矩形,判断它们是否重叠并返回结果。

示例1:

输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]
输出:true

示例2:

输入:rec1 = [0,0,1,1], rec2 = [1,0,2,1]
输出:false

思路

如果rec1rec2没有重叠,那么只有四种情况,rec1rec2的上下左右四个方向。

  • rec1[2] <= rec2[0] rec1rec2 的左边
  • rec1[3] <= rec2[1] rec1rec2 的下面
  • rec1[0] >= rec2[2] rec1rec2 的右边
  • rec1[1] >= rec2[3] rec1rec2 的上边

实现

func isRectangleOverlap(rec1 []int, rec2 []int) bool {
    return !(rec1[2] <= rec2[0] || // left
        rec1[3] <= rec2[1] || // bottom
        rec1[0] >= rec2[2] || // right
        rec1[1] >= rec2[3]) // top
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容