【Leetcode】矩形重叠(每日一题)
题目链接:矩形重叠
题意:矩形以列表 [x1, y1, x2, y2]
的形式表示,其中 (x1, y1)
为左下角的坐标,(x2, y2)
是右上角的坐标。
如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。
给出两个矩形,判断它们是否重叠并返回结果。
题解:感觉这个题见过好多次了。。实际上是个很简单的逻辑判断题。
只需要考虑不重叠的情况就可以了。一个图形有两种情况,交换看看就可以了。
代码:
1 class Solution { 2 public: 3 bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) { 4 int x1 = rec1[0]; 5 int y1 = rec1[1]; 6 int x2 = rec1[2]; 7 int y2 = rec1[3]; 8 9 int xx1 = rec2[0]; 10 int yy1 = rec2[1]; 11 int xx2 = rec2[2]; 12 int yy2 = rec2[3]; 13 14 if(x2 <= xx1 || x1 >= xx2 || y2 <= yy1 || y1 >= yy2){ 15 return false; 16 } 17 else return true; 18 } 19 };