Rectangle Area

如图,计算两个矩形所包含的面积。
fig
如果两个矩形相交,则减去相交的小的矩形的面积。

相交无外乎以下几种情况
这里写图片描述
重要的是确定相交的小矩形的左下,右上两个坐标。

class Solution:
    # @param {integer} A
    # @param {integer} B
    # @param {integer} C
    # @param {integer} D
    # @param {integer} E
    # @param {integer} F
    # @param {integer} G
    # @param {integer} H
    # @return {integer}
    def computeArea(self, A, B, C, D, E, F, G, H):
        area1=(C-A)*(D-B)
        area2=(G-E)*(H-F)
        area_overlapped=0
        print 'area1:',area1
        print 'area2:',area2
        x_overlapped=(A-G)*(C-E)
        y_overlapped=(B-H)*(D-F)
        if x_overlapped>=0 or y_overlapped>=0: #x and y not overlap
            return area1+area2
        else :
            x1=max(A,E)
            y1=max(B,F)
            x2=min(C,G)
            y2=min(D,H)
            area_overlapped=(x2-x1)*(y2-y1)
            print 'overlap:',area_overlapped
            return area1+area2-area_overlapped
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值