Rectangle Area

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.

[LeetCode] Rectangle Area

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 };

 

 

相关文章: