首先介绍一种比较笨的方法:
排除法:排除了不重叠的不就是重叠了嘛。
不重叠就那么四种情况在左边/右边/上边/下边(左下右上等其实是可以归于左边/上边的某种情况的)
class Solution
{
public:
bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2)
{
int rec1_x_l=rec1[0];
int rec1_x_r=rec1[2];
int rec1_y_l=rec1[1];
int rec1_y_r=rec1[3];
int rec2_x_l=rec2[0];
int rec2_x_r=rec2[2];
int rec2_y_l=rec2[1];
int rec2_y_r=rec2[3];
if(rec1_x_l>=rec2_x_r||rec1_x_r<=rec2_x_l||rec1_y_l>=rec2_y_r||rec1_y_r<=rec2_y_l)
{
return false;
}
return true;
}
};