题目:
思路:
- 如果两个矩阵相交,则两个矩形面积减去相交的面积。
- 如果两个矩阵不相交,则为两个矩形面积之和。
注意一点:矩阵相乘可能会溢出,所以要用long类型进行运算。
代码实现:
class Solution {
public:
long getArea(long x1, long y1, long x2, long y2){
return (y2-y1)*(x2-x1);
}
int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
if ((C<=E || D<=F)||(G <= A || H<=B)){
return getArea(A,B,C,D) + getArea(E,F,G,H);
}
int x1 = max(A, E);
int y1 = max(B, F);
int x2 = min(C, G);
int y2 = min(D, H);
return getArea(A,B,C,D)+getArea(E,F,G,H)-getArea(x1, y1, x2, y2);
}
};