leetCode #223 Rectangle Area

题目:求2个矩形加起来覆盖的面积

分析:主要要考虑重叠的判断。2个矩形若重叠,那么在水平方向它们左侧起点的最右端应该比右侧起点的最左端左,同时垂直方向,下侧起点的最上端比上侧的最下端要下。

答案:

class Solution {
public:
    int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
        int area1 = (C-A)*(D-B);
        int area2 = (G-E)*(H-F);
        int maxlow_x = max(A,E); int minhigh_x = min(C,G);
        int maxlow_y = max(B,F); int minhigh_y = min(D,H);
        if (maxlow_x <= minhigh_x && maxlow_y <= minhigh_y)
            return (area1 + area2 - (maxlow_x - minhigh_x)*(maxlow_y - minhigh_y));
        else
            return (area1 + area2);
    }
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值