leetcode836 矩形重疊

2021-10-04 02:29:53 字數 964 閱讀 2640

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

如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。

給出兩個矩形,判斷它們是否重疊並返回結果。

示例一

輸入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]

輸出:true

示例二

輸入:rec1 = [0,0,1,1], rec2 = [1,0,2,1]

輸出:false

解題思路:

正向思考:分為三種情況:

1、矩形一的拐角落在矩形二中

2、矩形二的拐角落在矩形一中

3、不存在落拐角的矩形重合

實現**:

int

isrectangleoverlap

(int

* rec1,

int rec1size,

int* rec2,

int rec2size)

return false;

}

解法二:逆向思維

列舉所有的不重疊情況:

實現**:

if

(rec2[0]

>=rec1[2]

|| rec1[0]

>=rec2[2]

|| rec2[3]

<=rec1[1]

|| rec1[3]

<=rec2[1]

)return true;

結果:

事實證明:逆向思維很重要…

LeetCode 836 矩形重疊

矩形以列表 x1,y1,x2,y2 的形式表示,其中 x1,y1 為左下角的座標,x2,y2 是右上角的座標。如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。給出兩個矩形,判斷它們是否重疊並返回結果。示例 1 輸入 rec1 0,0,2,2 rec2 1,1,3...

LeetCode836 矩形重疊

矩形以列表 x1,y1,x2,y2 的形式表示,其中 x1,y1 為左下角的座標,x2,y2 是右上角的座標。如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。給出兩個矩形,判斷它們是否重疊並返回結果。示例 1 輸入 rec1 0,0,2,2 rec2 1,1,3...

LeetCode 836 矩形重疊

矩形以列表 x1,y1,x2,y2 的形式表示,其中 x1,y1 為左下角的座標,x2,y2 是右上角的座標。如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。給出兩個矩形,判斷它們是否重疊並返回結果。示例 1 輸入 rec1 0,0,2,2 rec2 1,1,3...