第一次完整的在线模拟,总体感觉就是思路清晰很重要,做完题目回头来看难度并不大,但如果能利用预处理,使得整体思路更加清晰,就可以使得编码更加轻松高效
836. Rectangle Overlap
难度:
Easy
思路:
给两个矩形,判断两个矩形是否重叠。
显然是分类讨论。看似很复杂,会有很多不同情况的样子,然而仔细想清楚,情况也很简单。
首先,确定下左侧的矩阵。右侧的矩阵若不重叠,只可能在上侧,下侧或者右侧,分类讨论一下这三种情况,其余情况下都重叠
代码:
/*
Author Owen_Q
*/
class Solution {
public:
bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {
if(rec1[0]>rec2[0])
swap(rec1,rec2);
if(rec2[1]>=rec1[3]||rec2[0]>=rec1[2])
return false;
if(rec2[3]<=rec1[1])
return false;
else
return true;
}
};