在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。
每个矩形由其左下顶点和右上顶点坐标表示,如图所示。
示例:
输入: -3, 0, 3, 4, 0, -1, 9, 2 输出: 45
说明: 假设矩形面积不会超出 int 的范围。
本题过于简单,不予解释
func computeArea(_ A: Int, _ B: Int, _ C: Int, _ D: Int, _ E: Int, _ F: Int, _ G: Int, _ H: Int) -> Int {
let totalSquar = (D-B)*(C-A) + (H-F)*(G-E)
// A < C; E < G; B < D; F < H
if H < B || F > D || G < A || C < E {
return totalSquar
}
var x1 = 0, x2 = 0, y1 = 0, y2 = 0
if H > D {
y1 = D
}else {
y1 = H
}
if B < F {
y2 = F
}else {
y2 = B
}
let y = abs(y1-y2)
if E < A {
x1 = A
}else {
x1 = E
}
if C < G {
x2 = C
}else {
x2 = G
}
let x = abs(x1-x2)
return totalSquar - x*y
}