223. Rectangle Area

来源:互联网 发布:pssproject监控软件 编辑:程序博客网 时间:2024/06/08 06:14

这道题要求给出两个矩形的总面积。

方法是,首先写出两个矩形不重叠的情况,那就是两个矩形面积的和。然后找出重叠部分,减去重叠部分的面积。

重叠区域的坐标:横边的左端点是两个矩形左顶点横坐标的较大值,右端点是两个矩形右顶点的较小值,同理,竖边的下端点是两个矩形下顶点纵坐标的较大值,上端点是两个矩形上顶点纵坐标的较小值。

如果两个矩形没有重叠,那么分别考虑第一个矩形在上面、下面、左边、右边的情况。

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)));    }};