先算两个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; } }