題目描述
矩形以列表 [x1, y1, x2, y2]
的形式表示,其中 (x1, y1)
爲左下角的座標,(x2, y2)
是右上角的座標。給出兩個矩形,判斷它們是否重疊並返回結果。
輸入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]
輸出:true
解題思路
簡單題。相似題目:[LeetCode] 223、矩形面積。
參考代碼
class Solution {
public:
bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {
int dx = max(0, min(rec1[2], rec2[2]) - max(rec1[0], rec2[0]));
int dy = max(0, min(rec1[3], rec2[3]) - max(rec1[1], rec2[1]));
return (long long)dx * dy > 0; // 用C++存在溢出可能
}
};