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.
思路:问题的关键点是判断是否两个矩形存在覆盖。
若存在覆盖时,必定有:A和E的最大值要小于C和G的最小值;B和F的最大值要小于D和H的最小值。
因此我们有如下代码
1 class Solution { 2 public: 3 int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) { 4 int left = max(A, E), right = max(min(C, G), left); 5 int bot = max(B, F), top = max(min(D, H), bot); 6 return (C - A) * (D - B) + (G - E) * (H - F) 7 - (right - left) * (top - bot); 8 } 9 };
其中减去的部分就是重叠的面积,当不重叠时该值为0。