C++ one-liner, explained
It was somehow difficult for me to formulate the condition of overlapping, so for a start I  defined the non-overlap condition. It is obvious: if the left side 
It was somehow difficult for me to formulate the condition of overlapping, so for a start I  defined the non-overlap condition. It is obvious: if the left side of rect1 is greater than the right side of rect2, or right1 is lesser than left2, or bottom1 is greater than top2, or top1 is lesser than bottom2. So I got the conditional: ```rec1[0] >= rec2[2] || rec1[2] <= rec2[0] || rec1[1] >= rec2[3] || rec1[3] <= rec2[1]```. Now that we know the non-overlapping conditional, all we need to do is negate it. Using a De Morgan\'s law: ```!(A || B) \u2261 !A && !B```\n```cpp\n    bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {\n        return rec1[0] < rec2[2] && rec1[2] > rec2[0] && rec1[1] < rec2[3] && rec1[3] > rec2[1];\n    }\n```
['C']