[LeetCode] 836、矩形重疊

題目描述

矩形以列表 [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++存在溢出可能
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章