目录

题目描述:

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

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

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

 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;
    }
};
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄