LeetCode: 223. 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.
Rectangle Area
Example:
Input: A = -3, B = 0, C = 3, D = 4, E = 0, F = -1, G = 9, H = 2
Output: 45
Note:
Assume that the total area is never beyond the maximum possible value of int
.
解题思路
覆盖面积 = 两个矩形的面积 - 两个矩形都覆盖的面积
AC 代码
class Solution {
public:
int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
int bothCover = 0;
if(A >= G || E >= C || B >= H || F >= D) bothCover = 0;
else
{
int l = max(A, E);
int t = min(D, H);
int r = min(C, G);
int b = max(B, F);
bothCover = (r-l)*(t-b);
}
return (G-E)*(H-F) + (C-A)*(D-B) - bothCover;
}
};