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.


223. Rectangle Area_第1张图片
Rectangle Area

Assume that the total area is never beyond the maximum possible value of int.

一刷
两个矩形面积相加减去overlap

public class Solution {
    public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
        int areaOfSqrA = (C - A) * (D - B);//ABCD
        int areaOfSqrB = (G - E) * (H - F);//EFGH
        
        int left = Math.max(A, E);
        int right = Math.min(G, C);
        int bottom = Math.max(F, B);
        int top = Math.min(D, H);
        
        int overlap = 0;
        if(right>left && top>bottom){
            overlap = (right - left) * (top - bottom);
        }
        return areaOfSqrA + areaOfSqrB - overlap;
    }
}

你可能感兴趣的:(223. Rectangle Area)