只想到最简单的方法,把所有可能情况列出来,导致程序很繁琐。
class Solution {
public:
int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
int res = (C-A)*(D-B)+(G-E)*(H-F);
A = max(A,E);
B = max(B,F);
C = min(C,G);
D = min(D,H);
if(A>=C||B>=D)
return res;
return res - (C-A)*(D-B);
}
};