zoukankan      html  css  js  c++  java
  • leetcode刷题笔记 223题 矩形面积

    leetcode刷题笔记 223题 矩形面积

    源地址:223. 矩形面积

    问题描述:

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

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

    示例:

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

    //保证ABCD指示左侧矩形,计算交叉面积的上下左右,计算交叉面积用于扣除
    object Solution {
        def computeArea(A: Int, B: Int, C: Int, D: Int, E: Int, F: Int, G: Int, H: Int): Int = {
            if (A < E) computeArea(E, F, G, H, A, B, C, D)
    
            if (D <= F || C <= E || H <= B || G <= A) return (D-B)*(C-A) + (H-F)*(G-E)
    
            val xLeft = math.max(A, E)
            val xRight = math.min(C, G)
            val xTop = math.min(D, H)
            val xBottom = math.max(B, F)
            return  (D-B)*(C-A) + (H-F)*(G-E) - (xTop-xBottom)*(xRight-xLeft)
        }
    }
    
  • 相关阅读:
    2804 最大最小数质因数
    5429 多重背包
    1851 越狱
    Gvim使用
    3622 假期
    4906 删数问题
    2845 排序的代价
    poj 3352
    常用正则表达式汇总
    功能简单例子
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13784277.html
Copyright © 2011-2022 走看看