题目
算法
- 主要两种方法,一种是从正向判断(有正重叠面积的条件),另一种是反向判断(没有正重叠面积的条件)
- 反向判断的条件比较容易想到,就是一个正方形最上面的边在另一个正方形最下面那条边的下面(左右方向同理)
- 正向判断就是反相判断条件的补集
AC代码(c++)
class Solution {
public:
bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {
if(rec1[0]>=rec2[2])
return false;
if(rec2[0]>=rec1[2])
return false;
if(rec1[1]>=rec2[3])
return false;
if(rec2[1]>=rec1[3])
return false;
return true;
}
};