//检查矩形位置是否重叠
class Solution
{
public:
bool isRectangleOverlap(vector<int> &rec1, vector<int> &rec2)
{
//如果有一个矩形的面积为0,则一定没有重叠的区域
if (rec1[0] == rec1[2] || rec1[1] == rec1[3] || rec2[0] == rec2[2] || rec2[1] == rec2[3])
{
return false;
}
//当两个矩形的面积均大于0时,矩形1必须出现在矩形2的四周才没有重叠的区域
return !(rec1[2] <= rec2[0] || // 矩形 rec1 在矩形 rec2 的左侧
rec1[3] <= rec2[1] || // 矩形 rec1 在矩形 rec2 的下方
rec1[0] >= rec2[2] || // 矩形 rec1 在矩形 rec2 的右侧
rec1[1] >= rec2[3]); // 矩形 rec1 在矩形 rec2 的上方
}
};
//检查投影线段是否有交集
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]));
}
};