矩形重疊(逆向思考)

2021-10-04 02:46:51 字數 773 閱讀 4078

題目:

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

思路:

這道題很簡單,其實就是乙個數學分析的過程兩個矩形有重疊的部分即可。然後我就開始分析能重疊的情況,分析了一會後罷手了,很繁瑣,即使寫出來**也沒有觀賞性。

然後發呆了好一會,因為這道題這麼想肯定沒問題,但是方法用錯了。後來突然想起了數學上的逆向思考。當正面情況很複雜的時候,就換個思路,將錯誤的排除了就可以了。恍然大悟,其實就是個邊界問題。

不重疊只有四種情況,1在2左面,rec1[2]<=rec2[0];1在2右面,rec1[0]>=rec2[2];1在2下面,rec1[3]<=rec2[1];1在2上面,rec1[1]>=rec2[3];

記錄這道題的原因就是這個思路好久沒用過了,再次用出來在**上居然如此簡潔,所以花費時間記錄下了這個思路。

class

solution

};

矩形法 矩形重疊

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

矩形重疊檢測。

矩形重疊型別注釋 corner overlap anchor overlap same width overlap inside overlap cross overlap typedef enum em rectoverlaptype em rectoverlaptype 判斷rect重疊的型別,...

矩形重疊檢測。

矩形重疊型別注釋 corner overlap anchor overlap same width overlap inside overlap cross overlap typedef enum em rectoverlaptype em rectoverlaptype 判斷rect重疊的型別,...