Leetcode: Rectangle Area

先算两个rectangle的面积,再减去重叠面积

public class Solution {
    public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
        int areaA = (C-A)*(D-B);
        int areaB = (G-E)*(H-F);
        int overLapWidth = 0;
        if (E <= C && G > A) {
            int leftBar = E < A ? A : E;
            int rightBar = G > C ? C : G;
            overLapWidth = rightBar-leftBar;
        }
        int overLapHeight = 0;
        if (F <= D && H > B) {
            int downBar = F < B ? B : F;
            int upBar = H > D ? D : H;
            overLapHeight = upBar - downBar;
        }
        return areaA -overLapHeight*overLapWidth + areaB; 
    }
}

Leave a comment