leetcode 223. 矩形面积

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

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

rectangle_area.png

示例:

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

说明: 假设矩形面积不会超出 int 的范围。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution:
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
"""

left_x = max(A,E)
left_y = max(B,F)
right_x = min(C,G)
right_y = min(D,H)
mixed_area = (right_y-left_y)*(right_x-left_x)
if C <= E or D <= F or A >= G or B >= H:
mixed_area = 0
return (G-E)*(H-F)+(C-A)*(D-B)-mixed_area