給定兩個軸對齊矩形的左下角和右上角坐標,計算它們覆蓋的總面積。假設總面積不超過 int 最大值。
矩形 1:A,B (左下), C,D (右上)。矩形 2:E,F, G,H。
重疊區域左下角:(max(A,E), max(B,F)),右上角:(min(C,G), min(D,H))。
若左下角坐標大於等於右上角坐標,則無重疊。
總面積 = 面積1 + 面積2 - 重疊面積。
class Solution {
public:
int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
long area1 = (long)(C - A) * (D - B);
long area2 = (long)(G - E) * (H - F);
long overlapW = max(0, min(C, G) - max(A, E));
long overlapH = max(0, min(D, H) - max(B, F));
long overlap = overlapW * overlapH;
return (int)(area1 + area2 - overlap);
}
};