今天的簽到題,卻也不是一下子就能解決的,還真是讓我繞了許多彎。
看到題時的想法是檢驗矩陣中是否包含另乙個矩陣的頂點,若包含則判定重疊。但是這樣的判斷需要對八個點分別進行,於是開開心心砸完一噸**。剛準備上手跑,想到了乙個反例,像這樣:
emm。。。光速刪**,重新考慮。
接著想,如果考慮頂點不可取的話,考慮邊是否可取呢?即能不能通過判斷邊是否與矩形有交集來判斷矩形相較呢?
嗯,有些道理。
然後剛準備一頓推,想到又是八條邊的判斷,我重新思考了一下,如果逆向思考會如何呢?即考慮兩個矩形是否不想交。這個命題的驗證似乎就變得很簡單了,因為相交時,一條邊同另乙個矩陣的兩條對邊的關係可以有很多種,可是它的否定就只有一種情況,最終只需要考慮乙個矩陣是否在另乙個矩陣的四周即可。
例如矩形a在b的右邊,那麼a的左側的邊應該在b右側邊的右邊。有點繞,但是不難理解。
又由於這種四周的概念是相對的,那麼只需要列舉上下左右四種情況即可。
**:
class
solution
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...