题目描述
在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。
每个矩形由其左下顶点和右上顶点坐标表示,如图所示。
示例:
输入: -3, 0, 3, 4, 0, -1, 9, 2
输出: 45
说明: 假设矩形面积不会超出 int 的范围。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rectangle-area
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
class Solution {
public:
int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
bool b = (C<=E)||(G<=A)||(D<=F)||(H<=B);
long long s1 = (C-A)*(D-B),s2 = (G-E)*(H-F);
long long ans = s1+s2;
if(b) return ans;
int x0,y0,x1,y1;
x0 = max(A,E);
y0 = max(B,F);
x1 = min(C,G);
y1 = min(D,H);
ans -= (x1-x0)*(y1-y0);
return ans;
}
};