Find the total area covered by two rectilinear rectangles in a 2D plane.
Each rectangle is defined by its bottom left corner and top right corner as shown in the figure.
![Rectangle Area](https://leetcode.com/static/images/problemset/rectangle_area.png)
Assume that the total area is never beyond the maximum possible value of int.
Credits:
Special thanks to @mithmatt for adding this problem, creating the above image and all test cases.
Analysis:
Area = area1 + area2 - overlap. To find out overlapped area, we decompose the matrix into x dimension and y dimension; we then find out the overlapped interval in x&y diemension respectively, which are the four lines constructing the overlapped rectangle.
Solution:
public class Solution { public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) { int area1 = (C-A) * (D-B); int area2 = (G-E) * (H-F); int overlap = 0; if (E<C && A<G && F<D && B<H){ int left = Math.max(A,E); int right = Math.min(C,G); int up = Math.min(D,H); int bottom = Math.max(B,F); overlap = (right-left) * (up-bottom); } return area1+area2-overlap; } }