看清题意,给定的分别是每个矩阵的左下角和右上角
class Solution {
public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
if(E>=C||F>=D||A>=G||B>=H){//没有发生重叠时直接返回
return (C-A)*(D-B)+(G-E)*(H-F);
}
int x1 = Math.max(A,E),y1 = Math.max(B,F);
int x2 = Math.min(C,G),y2 = Math.min(D,H);
int commonArea = (x2-x1)*(y2-y1);//发生重叠后,计算重叠的面积减去它即可
return (C-A)*(D-B)+(G-E)*(H-F) - commonArea;
}
}