LeetCode答题记录223. 矩形面积

在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。
每个矩形由其左下顶点和右上顶点坐标表示,如图所示。


LeetCode答题记录223. 矩形面积_第1张图片
image

示例:
输入: -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
}

你可能感兴趣的:(LeetCode答题记录223. 矩形面积)