classSolution { public: intcomputeArea(int A, int B, int C, int D, int E, int F, int G, int H){ int l1 = max(A, E); int l2 = min(C, G); int h1 = max(B, F); int h2 = min(D, H); int extra_area = 0; if(l2 > l1 && h2 > h1) { extra_area = (l2-l1) * (h2-h1); }else { extra_area = 0; } return (G-E)*(H-F)+(C-A)*(D-B)-extra_area; } };
解决方案2(Java)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
publicclassSolution{ publicintcomputeArea(int A, int B, int C, int D, int E, int F, int G, int H){ int l1 = Math.max(A, E); int l2 = Math.min(C, G); int h1 = Math.max(B, F); int h2 = Math.min(D, H); int extra_area = 0; if(l2 > l1 && h2 > h1) { extra_area = (l2-l1)*(h2-h1); }else { extra_area = 0; } return (G-E)*(H-F)+(C-A)*(D-B)-extra_area; } }