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
說明:
- 兩個矩形
rec1
和rec2
都以含有四個整數的列表的形式給出。 - 矩形中的所有座標都處於
-10^9
和10^9
之間。
思路:這道題採用對映的方法,如下圖所示:我們把兩個矩形分別投影到x軸和y軸,如果兩個矩形有重疊,那麼投影在x軸的線段和投影在y軸的線段就都會重疊。所以問題轉化成投影在x軸的線段是否重疊x_intersection,投影在y軸的線段是否重疊y_intersection,如果x和y都是true,那麼返回true。
參考程式碼如下:
class Solution {
public:
bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {
int x1 = rec1[0], y1 = rec1[1], x2 = rec1[2], y2 = rec1[3], rec2_x1 = rec2[0], rec2_y1 = rec2[1], rec2_x2 = rec2[2], rec2_y2 = rec2[3];
bool x_intersection = !(x2<=rec2_x1 || x1>=rec2_x2);
bool y_intersection = !(y2<=rec2_y1 || y1>=rec2_y2);
return x_intersection && y_intersection;
}
};
相關文章
- leetcode 掃描線專題 06-leetcode.836 rectangle-overlap 力扣.836 矩形重疊LeetCode力扣
- 矩形Rectangle
- LeetCode 836[矩形重疊]LeetCode
- 力扣.223 矩形面積 rectangle-area力扣
- leetcode 掃描線專題 06-leetcode.391 perfect-rectangle 力扣.391 完美矩形LeetCode力扣
- WinSock 重疊IO模型模型
- 時間重疊成立式
- WPF Rectangle ellipse
- Margin會重疊,你造嗎
- LeetCode 435 無重疊區間LeetCode
- [貪心]最大線段重疊
- 435. 無重疊區間
- 垂直margin為什麼會重疊
- 《重疊實驗框架》閱讀分析框架
- 力扣-435.無重疊區間力扣
- 校驗區間是否存在重疊(Python)Python
- Arch Linux下韓文重疊顯示Linux
- [ARC179E] Rectangle Concatenation
- 帆軟報表linux列印字型重疊Linux
- Android控制元件重疊顯示小記Android控制元件
- 解決div相鄰盒子邊框重疊
- 深入解析CSS樣式層疊權重值CSS
- 貪心演算法之無重疊區間演算法
- 面試之CSS篇 - 邊距重疊與BFC面試CSS
- AUTOCAD——矩形命令
- 矩形覆蓋
- CSS三大特性(層疊性,繼承性,權重)CSS繼承
- 力扣 leetcode 435. 無重疊區間 貪心力扣LeetCode
- Rectangle for Mac視窗管理工具Mac
- 最大加權矩形
- canvas 虛線矩形Canvas
- canvas矩形拖拽效果Canvas
- canvas 繪製矩形Canvas
- 又出 bug 了 ?Safari 下文字和省略號重疊問題
- canvas繪製圖案是重疊繪製而不是重置Canvas
- canvas 繪製圖案是重疊繪製而不是重置Canvas
- Rectangle Pro for Mac,視窗布局增強工具Mac
- Rectangle Pro for Mac(視窗布局增強工具)Mac