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.
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.
數學題,求矩形覆蓋面積。因為只有兩個矩形,所以直接算結果 = 兩個矩形的面積 - 相交的面積。估計下一道題就會是求多個矩形的覆蓋面積了吧。
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 res = (D - B) * (C - A) + (H - F) * (G - E); 5 int A1 = max(A, E), B1 = max(B, F), C1 = min(C, G), D1 = min(D, H); 6 if (D1 <= B1 || C1 <= A1) return res; 7 return res - (D1 - B1) * (C1 - A1); 8 } 9 };
