LeetCode答题记录223. 矩形面积

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


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
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容