leetcode 223. 矩形面积(Rectangle Area)

题目描述:

二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。

每个矩形由其左下顶点和右上顶点坐标表示,如图所示。

示例:

输入: -3, 0, 3, 4, 0, -1, 9, 2
输出: 45

说明:

  • 假设矩形面积不会超出 int 的范围。

解法:

class Solution {
public:
    int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
        int x1 = A, y1 = B, x2 = C, y2 = D;
        int x3 = E, y3 = F, x4 = G, y4 = H;
        int area1 = 0, area2 = 0;
        if(x1 < x2 && y1 < y2){
            area1 = (x2 - x1)*(y2 - y1);
        }
        if(x3 < x4 && y3 < y4){
            area2 = (x4 - x3)*(y4 - y3);
        }
        
        int min_x = max(x1, x3);
        int min_y = max(y1, y3);
        int max_x = min(x2, x4);
        int max_y = min(y2, y4);
        int overlap = 0;
        if(min_x >= max_x || min_y >= max_y){
            
        }else{
            overlap = (max_x - min_x)*(max_y - min_y);
        }
        return area1 - overlap + area2;
    }
};
posted @ 2019-05-10 14:31  zhanzq1  阅读(210)  评论(0)    收藏  举报