题目
rectangle-area
算法
* 直接模拟
* 优化
代码
* 直接模拟
class Solution {
public:
int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
int sum = (C - A) * (D - B) + (H - F) * (G - E);
if (E >= C || F >= D || B >= H || A >= G) return sum;
return sum - ((min(G, C) - max(A, E)) * (min(D, H) - max(B, F)));
}
};
* 优化
class Solution {
public:
int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
return (C - A) * (D - B) + (H - F) * (G - E) - (max((min(G, C) - max(A, E)), 0) * max((min(D, H) - max(B, F)), 0));
}
};