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.
Solution:
Add the areas of 2 rectangles and subtract the overlapping area.
Code:
public class Solution {
public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
int A1 = (C - A) * (D - B);
int A2 = (G - E) * (H - F);
int left = Math.max(A,E);
int right = Math.min(C,G);
int ceiling = Math.min(D,H);
int floor = Math.max(B,F);
int overlap = 0;
if(right > left && ceiling > floor){
overlap = (right - left) * (ceiling - floor);
}
return A1 + A2 - overlap;
}
}
本文介绍了一种计算两个直角矩形在二维平面上所覆盖总面积的方法。通过求两个矩形的面积之和再减去重叠部分的面积得到最终结果。此算法适用于计算机图形学和几何计算等领域。

被折叠的 条评论
为什么被折叠?



