Rectangle Area Given the coordinates of two rectilinear rectangles in a 2D plane, return the total area covered by the two rectangles.
The first rectangle is defined by its bottom-left corner (ax1, ay1)
and its top-right corner (ax2, ay2)
.
The second rectangle is defined by its bottom-left corner (bx1, by1)
and its top-right corner (bx2, by2)
.
Example 1:


Input: ax1 = -3, ay1 = 0, ax2 = 3, ay2 = 4, bx1 = 0, by1 = -1, bx2 = 9, by2 = 2 Output: 45
Example 2:
Input: ax1 = -2, ay1 = -2, ax2 = 2, ay2 = 2, bx1 = -2, by1 = -2, bx2 = 2, by2 = 2 Output: 16
Constraints:
-104 <= ax1, ay1, ax2, ay2, bx1, by1, bx2, by2 <= 104
Rectangle Area Solutions
✅Time: O(1)
✅Space: O(1)
C++
class Solution {
public:
int computeArea(long A, long B, long C, long D,
long E, long F, long G, long H) {
const long x = max(A, E) < min(C, G) ? (min(C, G) - max(A, E)) : 0;
const long y = max(B, F) < min(D, H) ? (min(D, H) - max(B, F)) : 0;
return (C - A) * (D - B) + (G - E) * (H - F) - x * y;
}
};
Java
class Solution {
public int computeArea(long A, long B, long C, long D, long E, long F, long G, long H) {
final long x = Math.max(A, E) < Math.min(C, G) ? (Math.min(C, G) - Math.max(A, E)) : 0;
final long y = Math.max(B, F) < Math.min(D, H) ? (Math.min(D, H) - Math.max(B, F)) : 0;
return (int) ((C - A) * (D - B) + (G - E) * (H - F) - x * y);
}
}
Python
class Solution:
def computeArea(self, A: int, B: int, C: int, D: int, E: int, F: int, G: int, H: int) -> int:
x = min(C, G) - max(A, E) if max(A, E) < min(C, G) else 0
y = min(D, H) - max(B, F) if max(B, F) < min(D, H) else 0
return (C - A) * (D - B) + (G - E) * (H - F) - x * y
Watch Tutorial
Checkout more Solutions here