LeetCode 836 矩形重疊

2021-10-03 12:14:32 字數 1022 閱讀 6183

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

說明:兩個矩形 rec1 和 rec2 都以含有四個整數的列表的形式給出。

矩形中的所有座標都處於 -10^9 和 10^9 之間。

方法一:時間複雜度o(1)   空間複雜度o(1)

如果矩形不重疊,則矩形a可能位於矩形b的上或下或左或右

class solution:

def isrectangleoverlap(self, rec1: list[int], rec2: list[int]) -> bool:

x1, y1, x2, y2 = rec1

x3, y3, x4, y4 = rec2

return not (x4<=x1 or x2<=x3 or y4<=y1 or y2<=y3)

方法二:時間複雜度o(1) 空間複雜度o(1)

如果重疊,則重疊的矩形的邊和寬都為正,即將問題看成兩個一維問題

class solution:

def isrectangleoverlap(self, rec1: list[int], rec2: list[int]) -> bool:

x1, y1, x2, y2 = rec1

x3, y3, x4, y4 = rec2

return min(x2, x4) > max(x1, x3) and min(y2, y4) > max(y1, y3)

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...