反證
不重疊的情況:矩陣A在矩陣B的
上
,下
,左
,右
。
rec1[3]<=rec2[1]
:上
rec2[3]<=rec1[1]
:下
rec1[2]<=rec2[0]
:左
rec2[2]<=rec1[0]
:右
class Solution {
public:
bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {
if(rec1[2]<=rec2[0]||rec2[2]<=rec1[0]||rec1[3]<=rec2[1]||rec2[3]<=rec1[1])
return false;
return true;
}
};
正向考慮重疊
矩形重疊意味着
兩個矩形在x軸和y軸的投影上均有交集
。
class Solution {
public:
bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {
return(min(rec1[2],rec2[2])>max(rec1[0],rec2[0])&&
min(rec1[3],rec2[3])>max(rec1[1],rec2[1]));
}
};