leetcode223. Rectangle Area

来源:互联网 发布:天猫美工dw教学 编辑:程序博客网 时间:2024/05/11 03:59

Find the total area covered by two rectilinear rectangles in a 2D plane.
Each rectangle is defined by its bottom left corner and top right corner as shown in the figure.

问题关键在于重合的部分怎么计算

class Solution(object):    def computeArea(self, A, B, C, D, E, F, G, H):        """        :type A: int        :type B: int        :type C: int        :type D: int        :type E: int        :type F: int        :type G: int        :type H: int        :rtype: int        """        Sum=(G-E)*(H-F)+(D-B)*(C-A)        if G<=A or E>=C or H<=B or F>=D:            return Sum        else:            delta1=max(0,G-A)-max(0,G-C)-max(0,E-A)            delta2=max(0,H-B)-max(0,H-D)-max(0,F-B)        return Sum-delta1*delta2
0 0