矩形重叠

此博客链接:https://www.cnblogs.com/ping2yingshi/p/12517261.html

矩形重叠(43min)

题目链接:https://leetcode-cn.com/problems/rectangle-overlap/

矩形以列表 [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题解:

     方法:判断两个矩形不重叠情况。     思路:          两个矩形AB重叠时,有四种情况重叠:                                       矩形B在矩形A左面重叠,
                                       矩形B在矩形A右面重叠,
                                       矩形B在矩形A上面重叠,
                                       矩形B在矩形A下面重叠,       如图所示:      

下面以矩形B在矩形A左面为例进行解释:当矩形B在矩形A左面时,两个矩形要想重叠,那么矩形B的横坐标:最小横坐标Xb1要小于矩形A的最大横坐标Xa2;矩形B的纵坐标:当矩形B在图中红线向上移动时,矩形B左下角纵坐标要大于矩形A的右上角纵坐标,向下移动时,矩形B右上角纵坐标要小于矩形A的右下角纵坐标。其他几种情况类似。

但是用正向求矩形重叠面积时,限制条件需要全考虑,这样容易少考虑限制条件,所以逆向思维,考虑两个矩形不重叠情况,例如矩形B在矩形A左面时,只需要考虑矩形B的横坐标大于等于矩形A的横坐标即可。

如图:

代码如下:

class Solution {
    public boolean isRectangleOverlap(int[] rec1, int[] rec2) {
        if((rec2[0]>=rec1[2])||(rec2[2]<=rec1[0])||(rec2[1]>=rec1[3])||(rec2[3]<=rec1[1]))
              return false;
        else
               return true;

    }
}

原文地址:https://www.cnblogs.com/ping2yingshi/p/12517261.html

时间: 2024-10-06 03:11:47

矩形重叠的相关文章

矩形重叠检测。

// 矩形重叠类型注释 // CORNER_OVERLAP // -------------------- // | | // | | // | **********|********** // | * | * // | * | * // ---------*---------| * // * * // * * // ********************* // // ANCHOR_OVERLAP // ---- // | | // | | // *******|**|******* //

[Swift]LeetCode836. 矩形重叠 | Rectangle Overlap

A rectangle is represented as a list [x1, y1, x2, y2], where (x1, y1) are the coordinates of its bottom-left corner, and (x2, y2) are the coordinates of its top-right corner. Two rectangles overlap if the area of their intersection is positive.  To b

LeetCode 29. 矩形重叠 反向思维

题目描述 矩形以列表 [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 提示: 两个矩

Leetcode 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 提示: 两个矩形 rec

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 提示: 两个矩形

leetcode 签到 836. 矩形重叠

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 提示

矩形重叠判断

突然想到一个很有意思的问题,就是怎么判断两个矩形是否重叠? 我想到的算法是,先计算不重叠情况,再取反即可! 不重叠情况 蓝色矩形在黑色矩形的四周,这就是不重叠的情况.转换成坐标就是,蓝色矩形的 Xmin>x2 || Xmax<x1 || Ymin>y2 || Ymax<y1 可得重叠公式为: !(Xmin>x2 || Xmax<x1 || Ymin>y2 || Ymax<y1)

836. Rectangle Overlap 矩形重叠

[抄题]: A rectangle is represented as a list [x1, y1, x2, y2], where (x1, y1) are the coordinates of its bottom-left corner, and (x2, y2) are the coordinates of its top-right corner. Two rectangles overlap if the area of their intersection is positive.

[LeetCode] Rectangle Overlap 矩形重叠

A rectangle is represented as a list [x1, y1, x2, y2], where (x1, y1) are the coordinates of its bottom-left corner, and (x2, y2) are the coordinates of its top-right corner. Two rectangles overlap if the area of their intersection is positive.  To b