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://i-blog.csdnimg.cn/blog_migrate/6230037e11c8390c8b46af54cac7201a.png)
Assume that the total area is never beyond the maximum possible value of int.
这道题求得是两个举行覆盖的面积。如果两个矩形没有相交的话直接返回两个矩形面积之和就可以了,如果有重合,那么再减去重合的面积即可。在如何计算重合面积上花费了一些时间,感觉思维还是有待加强。
代码:
public class Solution {
public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
int x1 = C - A ;
int y1 = D - B ;
int x2 = G - E ;
int y2 = H - F ;
int area = x1 * y1 + x2 * y2 ;
if(A >= G || C<= E || B >= H || D<= F ){
return area;
}
else{
int top = D>H?H:D;
int bottom = B>F?B:F;
int left = A>E?A:E;
int right = C>G?G:C;
return area - (top - bottom)* (right - left);
}
}
}