【LeetCode-223】 Rectangle Area(C++)

来源:互联网 发布:如何备份mysql 编辑:程序博客网 时间:2024/05/29 03:38

题目要求:求两个矩形所围成的总面积,每个矩形均由左下角的点坐标和右上点的坐标定义。如下图:


解题思路:其实就是简单的数学问题,首先判断两矩阵是不是相交,如果不相交,直接将两矩阵的面积相加;如果相交,则将两矩阵面积相加在减去公共区域的面积。

代码实现:

class Solution {public:    int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {        int p=(C-A)*(D-B);        int q=(G-E)*(H-F);        if(E<=A&&G<=A||E>=C&&G>=C||F<=B&&H<=B||F>=D&&H>=D)            return p+q;        else{            int p_q=(min(C,G)-max(E,A))*(min(D,H)-max(B,F));            return p+q-p_q;        }    }    int max(int x,int y){        return x>y?x:y;    }    int min(int x,int y){        return x<y?x:y;    }};

0 0
原创粉丝点击