在二維平面上計算出兩個由直線構成的矩形重疊後形成的總面積。
每個矩形由其左下頂點和右上頂點座標表示,如圖所示。
示例:
輸入: -3, 0, 3, 4, 0, -1, 9, 2 輸出: 45
思路,重疊部分寬要麼爲0,要麼是(最靠左的右邊)與(最靠右的左邊)相減,同理,高也是
由於相減時出現整數溢出,相減前需要轉化爲long類型
class Solution {
public:
int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
long s1=(C-A)*(D-B);
long s2=(G-E)*(H-F);
long w=(long(min(C,G))-long(max(A,E)))>0?long(min(C,G))-long(max(A,E)):0;
long h=(long(min(D,H))-long(max(B,F)))>0?long(min(D,H))-long(max(B,F)):0;
long z=s1-w*h+s2;
return z;
}
};